Re: [PATCH 4/5] pci: handled return value of platform_get_irq correctly

From: Marc Gonzalez
Date: Thu Mar 12 2020 - 05:53:11 EST


On 11/03/2020 20:19, Aman Sharma wrote:

> diff --git a/drivers/pci/controller/pcie-tango.c b/drivers/pci/controller/pcie-tango.c
> index 21a208da3f59..18c2c4313eb5 100644
> --- a/drivers/pci/controller/pcie-tango.c
> +++ b/drivers/pci/controller/pcie-tango.c
> @@ -273,9 +273,9 @@ static int tango_pcie_probe(struct platform_device *pdev)
> writel_relaxed(0, pcie->base + SMP8759_ENABLE + offset);
>
> virq = platform_get_irq(pdev, 1);
> - if (virq <= 0) {
> + if (virq < 0) {
> dev_err(dev, "Failed to map IRQ\n");
> - return -ENXIO;
> + return virq;
> }
>
> irq_dom = irq_domain_create_linear(fwnode, MSI_MAX, &dom_ops, pcie);


Weee, here we go again :-)

https://patchwork.kernel.org/patch/11066455/
https://patchwork.kernel.org/patch/10006651/

Last time around, my understanding was that, going forward,
the best solution was:

virq = platform_get_irq(...)
if (virq <= 0)
return virq ? : -ENODEV;

i.e. map 0 to -ENODEV, pass other errors as-is, remove the dev_err

@Bjorn/Lorenzo did you have a change of heart?

Regards.