ASoC: cs35l45: Checks index of cs35l45_irqs[]
authorRicardo Rivera-Matos <rriveram@opensource.cirrus.com>
Thu, 31 Aug 2023 16:20:39 +0000 (11:20 -0500)
committerMark Brown <broonie@kernel.org>
Mon, 11 Sep 2023 00:30:02 +0000 (01:30 +0100)
Checks the index computed by the virq offset before printing the
error condition in cs35l45_spk_safe_err() handler.

Signed-off-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
Signed-off-by: Vlad Karpovich <vkarpovi@opensource.cirrus.com>
Acked-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230831162042.471801-1-vkarpovi@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs35l45.c

index be4f4229576c4bbd222dd0e518829791ccc68598..9fa481ab8b7cda6876266391e288af0bb545c7af 100644 (file)
@@ -1023,7 +1023,10 @@ static irqreturn_t cs35l45_spk_safe_err(int irq, void *data)
 
        i = irq - regmap_irq_get_virq(cs35l45->irq_data, 0);
 
-       dev_err(cs35l45->dev, "%s condition detected!\n", cs35l45_irqs[i].name);
+       if (i < 0 || i >= ARRAY_SIZE(cs35l45_irqs))
+               dev_err(cs35l45->dev, "Unspecified global error condition (%d) detected!\n", irq);
+       else
+               dev_err(cs35l45->dev, "%s condition detected!\n", cs35l45_irqs[i].name);
 
        return IRQ_HANDLED;
 }