Commit 5080808c authored by Aleksandr Mishin's avatar Aleksandr Mishin Committed by Mark Brown

ASoC: amd: Adjust error handling in case of absent codec device

acpi_get_first_physical_node() can return NULL in several cases (no such
device, ACPI table error, reference count drop to 0, etc).
Existing check just emit error message, but doesn't perform return.
Then this NULL pointer is passed to devm_acpi_dev_add_driver_gpios()
where it is dereferenced.

Adjust this error handling by adding error code return.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 02527c3f ("ASoC: amd: add Machine driver for Jadeite platform")
Signed-off-by: default avatarAleksandr Mishin <amishin@t-argos.ru>
Link: https://patch.msgid.link/20240703191007.8524-1-amishin@t-argos.ruSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 9f3ae72c
...@@ -203,8 +203,10 @@ static int st_es8336_late_probe(struct snd_soc_card *card) ...@@ -203,8 +203,10 @@ static int st_es8336_late_probe(struct snd_soc_card *card)
codec_dev = acpi_get_first_physical_node(adev); codec_dev = acpi_get_first_physical_node(adev);
acpi_dev_put(adev); acpi_dev_put(adev);
if (!codec_dev) if (!codec_dev) {
dev_err(card->dev, "can not find codec dev\n"); dev_err(card->dev, "can not find codec dev\n");
return -ENODEV;
}
ret = devm_acpi_dev_add_driver_gpios(codec_dev, acpi_es8336_gpios); ret = devm_acpi_dev_add_driver_gpios(codec_dev, acpi_es8336_gpios);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment