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@linux.intel.com> Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com
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