ASoC: SOF: ipc4-topology: check dai->private in ipc_free()
authorLibin Yang <libin.yang@intel.com>
Fri, 8 Jul 2022 20:05:15 +0000 (15:05 -0500)
committerMark Brown <broonie@kernel.org>
Fri, 8 Jul 2022 20:30:30 +0000 (21:30 +0100)
commitb737fd8cf196bc96e471304007c3cd9b78672069
tree942b8822326dbb3cdf1e060456f632aba0524645
parent050237e6b0bea0fafbf7d3d57e717c6fa1e4e819
ASoC: SOF: ipc4-topology: check dai->private in ipc_free()

Set the swidget->private or dai->private to NULL after kfree in the error
handling in ipc_setup(). The private needs to be set NULL because if
ipc_setup() returns error, ipc_free() will be called later. ipc_free()
will judge the private is NULL or not to do the clearing.

For dai widget, dai->private is allocated and set in dai widget
ipc_setup(). So we need to check dai->private is NULL or not
in the ipc_free().

Fixes: 2cabd02b6090 ("ASoC: SOF: ipc4-topology: Add support for parsing AIF_IN/AIF_OUT widgets")
Fixes: abfb536bd116 ("ASoC: SOF: ipc4-topology: Add support for parsing DAI_IN/DAI_OUT widgets")
Fixes: 4f838ab20812 ("ASoC: SOF: ipc4-topology: Add support for parsing and preparing pga widgets")
Fixes: 4d4ba014ac4b ("ASoC: SOF: ipc4-topology: Add support for parsing mixer widgets")
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20220708200516.26853-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-topology.c