Commit 1c7f0e34 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Takashi Iwai
Browse files

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: default avatarGuennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Tested-by: default avatarGuennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Fixes: b98444ed ("ALSA: hda: Suspend codec at shutdown")
Link: https://lore.kernel.org/r/20220201112144.29411-1-peter.ujfalusi@linux.intel.com


Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 4ee02e20
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -3000,6 +3000,10 @@ void snd_hda_codec_shutdown(struct hda_codec *codec)
{
	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)
		snd_pcm_suspend_all(cpcm->pcm);