[PATCH] ALSA: hda: Skip codec shutdown in case the codec is not registered
![](https://secure.gravatar.com/avatar/08b3c46131d3e1745089fe4da4c91229.jpg?s=120&d=mm&r=g)
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 --- sound/pci/hda/hda_codec.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 7016b48227bf..f552785d301e 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -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);
![](https://secure.gravatar.com/avatar/5b19e9d0e834ea10ef75803718ad564b.jpg?s=120&d=mm&r=g)
On Tue, 01 Feb 2022 12:21:44 +0100, Peter Ujfalusi wrote:
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
Thanks, applied now.
Takashi
participants (2)
-
Peter Ujfalusi
-
Takashi Iwai