ALSA: hda: Skip codec shutdown in case the codec is not registered
If the codec->registered is not set then it means that pm_runtime is not yet enabled and the codec->pcm_list_head has not been initialized. The access to the not initialized pcm_list_head will lead a kernel crash during shutdown. Reported-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Tested-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> Fixes: b98444ed597d ("ALSA: hda: Suspend codec at shutdown") Link: https://lore.kernel.org/r/20220201112144.29411-1-peter.ujfalusi@linux.intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4ee02e2089
commit
1c7f0e349a
@ -3000,6 +3000,10 @@ void snd_hda_codec_shutdown(struct hda_codec *codec)
|
|||||||
{
|
{
|
||||||
struct hda_pcm *cpcm;
|
struct hda_pcm *cpcm;
|
||||||
|
|
||||||
|
/* Skip the shutdown if codec is not registered */
|
||||||
|
if (!codec->registered)
|
||||||
|
return;
|
||||||
|
|
||||||
list_for_each_entry(cpcm, &codec->pcm_list_head, list)
|
list_for_each_entry(cpcm, &codec->pcm_list_head, list)
|
||||||
snd_pcm_suspend_all(cpcm->pcm);
|
snd_pcm_suspend_all(cpcm->pcm);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user