On 1/25/20 4:39 AM, Takashi Iwai wrote:
On Fri, 24 Jan 2020 22:36:21 +0100, Pierre-Louis Bossart wrote:
The initial intent of releasing resources in the .remove does not work well with HDaudio codecs. If the probe_continue() fails in a work queue, e.g. due to missing firmware or authentication issues, we don't release any resources, and as a result the kernel oopses during suspend operations.
The suggested fix is to release all resources during errors in probe_continue(), and use fw_state to track resource allocation state, so that .remove does not attempt to release the same hardware resources twice. PM operations are also modified so that no action is done if DSP resources have been freed due to an error at probe.
Reported-by: Takashi Iwai tiwai@suse.de Co-developed-by: Kai Vehmanen kai.vehmanen@linux.intel.com Signed-off-by: Kai Vehmanen kai.vehmanen@linux.intel.com Bugzilla: http://bugzilla.suse.com/show_bug.cgi?id=1161246 Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
This deserves for Cc to stable, as the bug already hits on both 5.4 and 5.5 kernels.
Reviewed-by: Takashi Iwai tiwai@suse.de
Patch 2 would need to be Cc:'ed to stable as well, otherwise this patch3 will not apply.