[PATCH 5.12 122/292] ALSA: hda: Add IRQ check for platform_get_irq()

From: Greg Kroah-Hartman
Date: Mon Jul 19 2021 - 14:09:57 EST

From: Jiajun Cao <jjcao20@xxxxxxxxxxxx>

[ Upstream commit 8c13212443230d03ff25014514ec0d53498c0912 ]

The function hda_tegra_first_init() neglects to check the return
value after executing platform_get_irq().

hda_tegra_first_init() should check the return value (if negative
error number) for errors so as to not pass a negative value to
the devm_request_irq().

Fix it by adding a check for the return value irq_id.

Signed-off-by: Jiajun Cao <jjcao20@xxxxxxxxxxxx>
Signed-off-by: Xin Tan <tanxin.ctf@xxxxxxxxx>
Reviewed-by: Thierry Reding <treding@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20210622131947.94346-1-jjcao20@xxxxxxxxxxxx
Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
sound/pci/hda/hda_tegra.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/sound/pci/hda/hda_tegra.c b/sound/pci/hda/hda_tegra.c
index 6f2b743b9d75..6c6dc3fcde60 100644
--- a/sound/pci/hda/hda_tegra.c
+++ b/sound/pci/hda/hda_tegra.c
@@ -262,6 +262,9 @@ static int hda_tegra_first_init(struct azx *chip, struct platform_device *pdev)
const char *sname, *drv_name = "tegra-hda";
struct device_node *np = pdev->dev.of_node;

+ if (irq_id < 0)
+ return irq_id;
err = hda_tegra_init_chip(chip, pdev);
if (err)
return err;