diff options
author | Amadeusz Sławiński | 2019-06-17 13:36:42 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2019-07-26 09:14:12 +0200 |
commit | 6e6bc34f85702ea065a84477eec4a1401e759f9c (patch) | |
tree | 562fc723a95d108337cdcd022e363e688598f149 /sound | |
parent | perf tools: Increase MAX_NR_CPUS and MAX_CACHES (diff) | |
download | kernel-qcow2-linux-6e6bc34f85702ea065a84477eec4a1401e759f9c.tar.gz kernel-qcow2-linux-6e6bc34f85702ea065a84477eec4a1401e759f9c.tar.xz kernel-qcow2-linux-6e6bc34f85702ea065a84477eec4a1401e759f9c.zip |
ASoC: Intel: hdac_hdmi: Set ops to NULL on remove
[ Upstream commit 0f6ff78540bd1b4df1e0f17806b0ce2e1dff0d78 ]
When we unload Skylake driver we may end up calling
hdac_component_master_unbind(), it uses acomp->audio_ops, which we set
in hdmi_codec_probe(), so we need to set it to NULL in hdmi_codec_remove(),
otherwise we will dereference no longer existing pointer.
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/hdac_hdmi.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c index 63487240b61e..098196610542 100644 --- a/sound/soc/codecs/hdac_hdmi.c +++ b/sound/soc/codecs/hdac_hdmi.c @@ -1854,6 +1854,12 @@ static void hdmi_codec_remove(struct snd_soc_component *component) { struct hdac_hdmi_priv *hdmi = snd_soc_component_get_drvdata(component); struct hdac_device *hdev = hdmi->hdev; + int ret; + + ret = snd_hdac_acomp_register_notifier(hdev->bus, NULL); + if (ret < 0) + dev_err(&hdev->dev, "notifier unregister failed: err: %d\n", + ret); pm_runtime_disable(&hdev->dev); } |