Re: [PATCH] soc: qcom: llcc-qcom: Handle errors from optional IRQ lookup
Konrad Dybcio <[email protected]>
| Newsgroups | org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/10/26 7:10 AM, [email protected] wrote: > From: bui duc phuc <[email protected]> > > platform_get_irq_optional() can return errors such as -EPROBE_DEFER, > but the driver currently stores the return value directly in > drv_data->ecc_irq and continues probing. > > Propagate negative errors other than -ENXIO using dev_err_probe(), and > only assign the IRQ to drv_data->ecc_irq when a valid IRQ number is > returned. > > Signed-off-by: bui duc phuc <[email protected]> > --- > drivers/soc/qcom/llcc-qcom.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/qcom/llcc-qcom.c b/drivers/soc/qcom/llcc-qcom.c > index 8948b5fd42d2..e42946810b50 100644 > --- a/drivers/soc/qcom/llcc-qcom.c > +++ b/drivers/soc/qcom/llcc-qcom.c > @@ -5587,7 +5587,12 @@ static int qcom_llcc_probe(struct platform_device *pdev) > goto err; > } > > - drv_data->ecc_irq = platform_get_irq_optional(pdev, 0); > + ret = platform_get_irq_optional(pdev, 0); > + if (ret < 0 && ret != -ENXIO) > + return dev_err_probe(&pdev->dev, ret, "failed to get IRQ resource\n"); > + if (ret > 0) > + drv_data->ecc_irq = ret; Techinically you can drop the second if-statement Konrad