summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorBard Liao <yung-chuan.liao@linux.intel.com>2024-11-13 14:41:33 +0800
committerMark Brown <broonie@kernel.org>2024-11-13 13:53:09 +0000
commitde35b06bf15cb56c96c7a69474e305852cc170e3 (patch)
treecd20a3c75f0ddb476f160ff5fc36b2141db08a73 /sound/soc
parentfb5e67c9d03b4a65fd43acc18cbafffff15bd8f9 (diff)
ASoC: sdca: test adev before calling acpi_dev_for_each_child
sdca_lookup_functions may be called by a Peripheral that is not listed in the ACPI table. Testing adev is required to avoid kernel NULL pointer dereference. Fixes: 3a513da1ae33 ("ASoC: SDCA: add initial module") Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Link: https://patch.msgid.link/20241113064133.162501-1-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/sdca/sdca_functions.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/sdca/sdca_functions.c b/sound/soc/sdca/sdca_functions.c
index a6ad57430dd4..e6e5629c7054 100644
--- a/sound/soc/sdca/sdca_functions.c
+++ b/sound/soc/sdca/sdca_functions.c
@@ -165,6 +165,10 @@ void sdca_lookup_functions(struct sdw_slave *slave)
struct device *dev = &slave->dev;
struct acpi_device *adev = to_acpi_device_node(dev->fwnode);
+ if (!adev) {
+ dev_info(dev, "No matching ACPI device found, ignoring peripheral\n");
+ return;
+ }
acpi_dev_for_each_child(adev, find_sdca_function, &slave->sdca_data);
}
EXPORT_SYMBOL_NS(sdca_lookup_functions, SND_SOC_SDCA);