Message ID | 1499768108-48891-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Jul 11, 2017 at 06:15:08PM +0800, Shawn Lin wrote: > It's wrong to check the return value of pci_scan_root_bus_bridge > here by using (!err) as 0 means it successfully scans the root > bridge. So the probe process will be terminated mistakenly. > > Fixes: ae13cb9b ("PCI: rockchip: Convert PCI scan API to ...") > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> > --- > > drivers/pci/host/pcie-rockchip.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Apologies, it is obviously a typo - before the check was if (!bus) which was prone to this mistake, I checked all other host bridges and they should be ok. Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c > index 5acf869..7bb9870 100644 > --- a/drivers/pci/host/pcie-rockchip.c > +++ b/drivers/pci/host/pcie-rockchip.c > @@ -1483,7 +1483,7 @@ static int rockchip_pcie_probe(struct platform_device *pdev) > bridge->swizzle_irq = pci_common_swizzle; > > err = pci_scan_root_bus_bridge(bridge); > - if (!err) > + if (err < 0) > goto err_free_res; > > bus = bridge->bus; > -- > 1.9.1 > >
On Tue, Jul 11, 2017 at 06:15:08PM +0800, Shawn Lin wrote: > It's wrong to check the return value of pci_scan_root_bus_bridge > here by using (!err) as 0 means it successfully scans the root > bridge. So the probe process will be terminated mistakenly. > > Fixes: ae13cb9b ("PCI: rockchip: Convert PCI scan API to ...") > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> > Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> Applied with Lorenzo's ack to for-linus for v4.13, thanks! > --- > > drivers/pci/host/pcie-rockchip.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c > index 5acf869..7bb9870 100644 > --- a/drivers/pci/host/pcie-rockchip.c > +++ b/drivers/pci/host/pcie-rockchip.c > @@ -1483,7 +1483,7 @@ static int rockchip_pcie_probe(struct platform_device *pdev) > bridge->swizzle_irq = pci_common_swizzle; > > err = pci_scan_root_bus_bridge(bridge); > - if (!err) > + if (err < 0) > goto err_free_res; > > bus = bridge->bus; > -- > 1.9.1 > >
diff --git a/drivers/pci/host/pcie-rockchip.c b/drivers/pci/host/pcie-rockchip.c index 5acf869..7bb9870 100644 --- a/drivers/pci/host/pcie-rockchip.c +++ b/drivers/pci/host/pcie-rockchip.c @@ -1483,7 +1483,7 @@ static int rockchip_pcie_probe(struct platform_device *pdev) bridge->swizzle_irq = pci_common_swizzle; err = pci_scan_root_bus_bridge(bridge); - if (!err) + if (err < 0) goto err_free_res; bus = bridge->bus;
It's wrong to check the return value of pci_scan_root_bus_bridge here by using (!err) as 0 means it successfully scans the root bridge. So the probe process will be terminated mistakenly. Fixes: ae13cb9b ("PCI: rockchip: Convert PCI scan API to ...") Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com> --- drivers/pci/host/pcie-rockchip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)