When platform_get_irq() fails we should propagate the real error value instead of always returning -EINVAL Cc: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxx> --- drivers/pci/host/pcie-rockchip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c index 56c2423..d205381 100644 --- a/drivers/pci/host/pcie-rockchip.c +++ b/drivers/pci/host/pcie-rockchip.c @@ -962,7 +962,7 @@ static int rockchip_pcie_setup_irq(struct rockchip_pcie *rockchip) irq = platform_get_irq_byname(pdev, "sys"); if (irq < 0) { dev_err(dev, "missing sys IRQ resource\n"); - return -EINVAL; + return irq; } err = devm_request_irq(dev, irq, rockchip_pcie_subsys_irq_handler, @@ -975,7 +975,7 @@ static int rockchip_pcie_setup_irq(struct rockchip_pcie *rockchip) irq = platform_get_irq_byname(pdev, "legacy"); if (irq < 0) { dev_err(dev, "missing legacy IRQ resource\n"); - return -EINVAL; + return irq; } irq_set_chained_handler_and_data(irq, @@ -985,7 +985,7 @@ static int rockchip_pcie_setup_irq(struct rockchip_pcie *rockchip) irq = platform_get_irq_byname(pdev, "client"); if (irq < 0) { dev_err(dev, "missing client IRQ resource\n"); - return -EINVAL; + return irq; } err = devm_request_irq(dev, irq, rockchip_pcie_client_irq_handler, -- 2.7.4