Skip to contentSkip to conversation

PCI: keystone: fix error handling of irq_of_parse_and_map

PATCH In review Dmitry Torokhov 3 participants 3 messages Nov 14, 2014 – Dec 9, 2014 PCI

lore
Share & tools
lore
#0 lore raw

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
index 8a27078..f2bd48d 100644
@@ -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
Acked-by on v1 1/1
#1 lore raw
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.

---

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
index 8a27078..f2bd48d 100644

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
maintainer
#2 lore raw
In reply to Dmitry Torokhov
Quoted 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.

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
index 8a27078..f2bd48d 100644
@@ -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