PCI: keystone: fix error handling of irq_of_parse_and_map
PATCH 1/1 PCI: keystone: fix error handling of irq_of_parse_and_map
Return value of irq_of_parse_and_map() is unsigned int, with 0 indicating failure, so testing for negative result never works.
---
Not tested, found by casual code inspection.
drivers/pci/host/pci-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/pci/host/pci-keystone.c +1 -1
@@ -197,7 +197,7 @@ static int ks_pcie_get_irq_controller_info(struct keystone_pcie *ks_pcie,*/ for (temp =0 ; temp < max_host_irqs; temp++) { host_irqs[temp] =irq_of_parse_and_map (*np_temp, temp); -if (host_irqs[temp] <0 ) +if (!host_irqs[temp])break ; }if (temp) {
Signature · 5 lines
2.1.0.rc2.206.gedb03e5 -- Dmitry
Quoted 16 lines · Dmitry Torokhov
Return value of
irq_of_parse_and_map()is unsigned int, with 0 indicating failure, so testing for negative result never works.Signed-off-by Dmitry Torokhov<[email protected]>---
Not tested, found by casual code inspection.
drivers/pci/host/pci-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/pci/host/pci-keystone.c +0
-0
drivers/pci/host/pci-keystone.c static int ks_pcie_get_irq_controller_info(struct keystone_pcie *ks_pcie, · line 203
Quoted 8 lines
drivers/pci/host/pci-keystone.c +1
-1@@ -197,7 +197,7 @@ static int ks_pcie_get_irq_controller_info(struct keystone_pcie *ks_pcie,*/ for (temp =0 ; temp< max_host_irqs; temp++) { host_irqs[temp] =irq_of_parse_and_map (*np_temp, temp); -if (host_irqs[temp]<0 ) +if (!host_irqs[temp])break ; }if (temp) {
Good catch!
Signature · 2 lines
Murali Karicheri Linux Kernel, Texas Instruments
Bjorn Helgaas
maintainerQuoted 4 lines · Dmitry Torokhov
Return value of
irq_of_parse_and_map()is unsigned int, with 0 indicating failure, so testing for negative result never works.Signed-off-by Dmitry Torokhov <[email protected]>
Applied with Murali's ack to next-pci/host-keystone for v3.19. This branch will be rebased to v3.19-rc1.
Quoted 26 lines
---
Not tested, found by casual code inspection.
drivers/pci/host/pci-keystone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/pci/host/pci-keystone.c +1
-1@@ -197,7 +197,7 @@ static int ks_pcie_get_irq_controller_info(struct keystone_pcie *ks_pcie,*/ for (temp =0 ; temp < max_host_irqs; temp++) { host_irqs[temp] =irq_of_parse_and_map (*np_temp, temp); -if (host_irqs[temp] <0 ) +if (!host_irqs[temp])break ; }if (temp) {Signature · 5 lines
2.1.0.rc2.206.gedb03e5 -- Dmitry