On Wed, 2020-07-29 at 09:48 +0200, Takashi Iwai wrote: > On Wed, 29 Jul 2020 01:10:11 +0200, > Ranjani Sridharan wrote: > > When the ASoC card registration fails and the codec component > > driver > > never probes, the codec device is not initialized and therefore > > memory for codec->wcaps is not allocated. This results in a NULL > > pointer > > dereference when the codec driver suspend callback is invoked > > during > > system suspend. Fix this by returning without performing any > > actions > > during codec suspend/resume if the card was not registered > > successfully. > > > > Reviewed-by: Pierre-Louis Bossart < > > pierre-louis.bossart@xxxxxxxxxxxxxxx> > > Signed-off-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx > > > > > The code changes look OK to apply, but I still wonder how the runtime > PM gets invoked even if the device is not instantiated properly? Hi Takashi, Its not runtime PM suspend but rather the system PM suspend callback that is invoked when the system is suspended that ends up callling the the runtime PM callback. So, the sequence is: hda_codec_pm_suspend() -> pm_runtime_force_suspend() -> hda_codec_runtime_suspend() Thanks, Ranjani