aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2016-09-06 07:53:24 -0400
committerMichael Ellerman <mpe@ellerman.id.au>2016-09-20 06:57:12 -0400
commitef24ba7091517d2bbf9ba2cb4256c0dccd51d248 (patch)
treef988a2b82eab1ec83aa2a08e34190a9a32b4035f
parent9d82fd2fae925efdf546cc25afdc664a2e3a2d9f (diff)
powerpc: Remove all usages of NO_IRQ
NO_IRQ has been == 0 on powerpc for just over ten years (since commit 0ebfff1491ef ("[POWERPC] Add new interrupt mapping core and change platforms to use it")). It's also 0 on most other arches. Although it's fairly harmless, every now and then it causes confusion when a driver is built on powerpc and another arch which doesn't define NO_IRQ. There's at least 6 definitions of NO_IRQ in drivers/, at least some of which are to work around that problem. So we'd like to remove it. This is fairly trivial in the arch code, we just convert: if (irq == NO_IRQ) to if (!irq) if (irq != NO_IRQ) to if (irq) irq = NO_IRQ; to irq = 0; return NO_IRQ; to return 0; And a few other odd cases as well. At least for now we keep the #define NO_IRQ, because there is driver code that uses NO_IRQ and the fixes to remove those will go via other trees. Note we also change some occurrences in PPC sound drivers, drivers/ps3, and drivers/macintosh. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--arch/powerpc/include/asm/machdep.h2
-rw-r--r--arch/powerpc/include/asm/mpic_msgr.h6
-rw-r--r--arch/powerpc/include/asm/parport.h2
-rw-r--r--arch/powerpc/kernel/ibmebus.c2
-rw-r--r--arch/powerpc/kernel/irq.c2
-rw-r--r--arch/powerpc/kernel/legacy_serial.c14
-rw-r--r--arch/powerpc/kernel/pci-common.c5
-rw-r--r--arch/powerpc/kernel/pci_of_scan.c2
-rw-r--r--arch/powerpc/platforms/44x/warp.c2
-rw-r--r--arch/powerpc/platforms/512x/mpc5121_ads_cpld.c8
-rw-r--r--arch/powerpc/platforms/512x/mpc512x_lpbfifo.c2
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_pic.c2
-rw-r--r--arch/powerpc/platforms/82xx/pq2ads-pci-pic.c2
-rw-r--r--arch/powerpc/platforms/83xx/mpc832x_rdb.c2
-rw-r--r--arch/powerpc/platforms/83xx/suspend.c4
-rw-r--r--arch/powerpc/platforms/85xx/common.c2
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_cds.c4
-rw-r--r--arch/powerpc/platforms/85xx/mpc85xx_ds.c4
-rw-r--r--arch/powerpc/platforms/85xx/socrates_fpga_pic.c6
-rw-r--r--arch/powerpc/platforms/86xx/pic.c4
-rw-r--r--arch/powerpc/platforms/8xx/m8xx_setup.c2
-rw-r--r--arch/powerpc/platforms/cell/axon_msi.c6
-rw-r--r--arch/powerpc/platforms/cell/interrupt.c12
-rw-r--r--arch/powerpc/platforms/cell/iommu.c2
-rw-r--r--arch/powerpc/platforms/cell/pmu.c4
-rw-r--r--arch/powerpc/platforms/cell/spider-pic.c18
-rw-r--r--arch/powerpc/platforms/cell/spu_base.c16
-rw-r--r--arch/powerpc/platforms/cell/spu_manage.c9
-rw-r--r--arch/powerpc/platforms/chrp/setup.c4
-rw-r--r--arch/powerpc/platforms/embedded6xx/flipper-pic.c2
-rw-r--r--arch/powerpc/platforms/embedded6xx/hlwd-pic.c4
-rw-r--r--arch/powerpc/platforms/embedded6xx/mvme5100.c4
-rw-r--r--arch/powerpc/platforms/maple/pci.c6
-rw-r--r--arch/powerpc/platforms/pasemi/misc.c2
-rw-r--r--arch/powerpc/platforms/pasemi/msi.c4
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c4
-rw-r--r--arch/powerpc/platforms/powermac/low_i2c.c6
-rw-r--r--arch/powerpc/platforms/powermac/pfunc_base.c4
-rw-r--r--arch/powerpc/platforms/powermac/pic.c6
-rw-r--r--arch/powerpc/platforms/powernv/opal-irqchip.c4
-rw-r--r--arch/powerpc/platforms/powernv/pci-cxl.c4
-rw-r--r--arch/powerpc/platforms/powernv/pci.c4
-rw-r--r--arch/powerpc/platforms/ps3/interrupt.c10
-rw-r--r--arch/powerpc/platforms/ps3/smp.c4
-rw-r--r--arch/powerpc/platforms/ps3/spu.c4
-rw-r--r--arch/powerpc/platforms/pseries/event_sources.c2
-rw-r--r--arch/powerpc/platforms/pseries/msi.c6
-rw-r--r--arch/powerpc/platforms/pseries/setup.c4
-rw-r--r--arch/powerpc/sysdev/axonram.c6
-rw-r--r--arch/powerpc/sysdev/cpm1.c8
-rw-r--r--arch/powerpc/sysdev/ehv_pic.c4
-rw-r--r--arch/powerpc/sysdev/fsl_gtm.c2
-rw-r--r--arch/powerpc/sysdev/fsl_mpic_err.c6
-rw-r--r--arch/powerpc/sysdev/fsl_msi.c12
-rw-r--r--arch/powerpc/sysdev/ge/ge_pic.c8
-rw-r--r--arch/powerpc/sysdev/i8259.c4
-rw-r--r--arch/powerpc/sysdev/ipic.c4
-rw-r--r--arch/powerpc/sysdev/mpc8xx_pic.c2
-rw-r--r--arch/powerpc/sysdev/mpic.c14
-rw-r--r--arch/powerpc/sysdev/mpic_msgr.c4
-rw-r--r--arch/powerpc/sysdev/mpic_u3msi.c4
-rw-r--r--arch/powerpc/sysdev/mv64x60_pic.c2
-rw-r--r--arch/powerpc/sysdev/pmi.c2
-rw-r--r--arch/powerpc/sysdev/ppc4xx_hsta_msi.c6
-rw-r--r--arch/powerpc/sysdev/ppc4xx_msi.c6
-rw-r--r--arch/powerpc/sysdev/ppc4xx_soc.c2
-rw-r--r--arch/powerpc/sysdev/tsi108_pci.c2
-rw-r--r--arch/powerpc/sysdev/uic.c2
-rw-r--r--arch/powerpc/sysdev/xics/icp-hv.c6
-rw-r--r--arch/powerpc/sysdev/xics/icp-native.c6
-rw-r--r--arch/powerpc/sysdev/xics/icp-opal.c8
-rw-r--r--arch/powerpc/sysdev/xics/xics-common.c2
-rw-r--r--drivers/macintosh/macio_asic.c4
-rw-r--r--drivers/macintosh/rack-meter.c2
-rw-r--r--drivers/macintosh/smu.c18
-rw-r--r--drivers/macintosh/via-cuda.c2
-rw-r--r--drivers/macintosh/via-pmu.c6
-rw-r--r--drivers/ps3/ps3-vuart.c4
-rw-r--r--sound/aoa/core/gpio-feature.c4
-rw-r--r--sound/ppc/tumbler.c8
80 files changed, 204 insertions, 200 deletions
diff --git a/arch/powerpc/include/asm/machdep.h b/arch/powerpc/include/asm/machdep.h
index 0420b388dd83..e02cbc6a6c70 100644
--- a/arch/powerpc/include/asm/machdep.h
+++ b/arch/powerpc/include/asm/machdep.h
@@ -61,7 +61,7 @@ struct machdep_calls {
61 61
62 void (*init_IRQ)(void); 62 void (*init_IRQ)(void);
63 63
64 /* Return an irq, or NO_IRQ to indicate there are none pending. */ 64 /* Return an irq, or 0 to indicate there are none pending. */
65 unsigned int (*get_irq)(void); 65 unsigned int (*get_irq)(void);
66 66
67 /* PCI stuff */ 67 /* PCI stuff */
diff --git a/arch/powerpc/include/asm/mpic_msgr.h b/arch/powerpc/include/asm/mpic_msgr.h
index d4f471fb1031..088420d8aa59 100644
--- a/arch/powerpc/include/asm/mpic_msgr.h
+++ b/arch/powerpc/include/asm/mpic_msgr.h
@@ -122,9 +122,9 @@ static inline void mpic_msgr_set_destination(struct mpic_msgr *msgr,
122 * @msgr: the message register whose IRQ is to be returned 122 * @msgr: the message register whose IRQ is to be returned
123 * 123 *
124 * Returns the IRQ number associated with the given message register. 124 * Returns the IRQ number associated with the given message register.
125 * NO_IRQ is returned if this message register is not capable of 125 * 0 is returned if this message register is not capable of receiving
126 * receiving interrupts. What message register can and cannot receive 126 * interrupts. What message register can and cannot receive interrupts is
127 * interrupts is specified in the device tree for the system. 127 * specified in the device tree for the system.
128 */ 128 */
129static inline int mpic_msgr_get_irq(struct mpic_msgr *msgr) 129static inline int mpic_msgr_get_irq(struct mpic_msgr *msgr)
130{ 130{
diff --git a/arch/powerpc/include/asm/parport.h b/arch/powerpc/include/asm/parport.h
index a452968b29ea..6595ad1d18cc 100644
--- a/arch/powerpc/include/asm/parport.h
+++ b/arch/powerpc/include/asm/parport.h
@@ -28,7 +28,7 @@ static int parport_pc_find_nonpci_ports (int autoirq, int autodma)
28 io1 = prop[1]; io2 = prop[2]; 28 io1 = prop[1]; io2 = prop[2];
29 29
30 virq = irq_of_parse_and_map(np, 0); 30 virq = irq_of_parse_and_map(np, 0);
31 if (virq == NO_IRQ) 31 if (!virq)
32 continue; 32 continue;
33 33
34 if (parport_pc_probe_port(io1, io2, virq, autodma, NULL, 0) 34 if (parport_pc_probe_port(io1, io2, virq, autodma, NULL, 0)
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c
index c1ca9282f4a0..6ca9a2ffaac7 100644
--- a/arch/powerpc/kernel/ibmebus.c
+++ b/arch/powerpc/kernel/ibmebus.c
@@ -227,7 +227,7 @@ int ibmebus_request_irq(u32 ist, irq_handler_t handler,
227{ 227{
228 unsigned int irq = irq_create_mapping(NULL, ist); 228 unsigned int irq = irq_create_mapping(NULL, ist);
229 229
230 if (irq == NO_IRQ) 230 if (!irq)
231 return -EINVAL; 231 return -EINVAL;
232 232
233 return request_irq(irq, handler, irq_flags, devname, dev_id); 233 return request_irq(irq, handler, irq_flags, devname, dev_id);
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 471f65ad1b9b..3c05c311e35e 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -519,7 +519,7 @@ void __do_irq(struct pt_regs *regs)
519 may_hard_irq_enable(); 519 may_hard_irq_enable();
520 520
521 /* And finally process it */ 521 /* And finally process it */
522 if (unlikely(irq == NO_IRQ)) 522 if (unlikely(!irq))
523 __this_cpu_inc(irq_stat.spurious_irqs); 523 __this_cpu_inc(irq_stat.spurious_irqs);
524 else 524 else
525 generic_handle_irq(irq); 525 generic_handle_irq(irq);
diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c
index 7b750c4ed5c7..bc525ea0dc09 100644
--- a/arch/powerpc/kernel/legacy_serial.c
+++ b/arch/powerpc/kernel/legacy_serial.c
@@ -193,10 +193,10 @@ static int __init add_legacy_soc_port(struct device_node *np,
193 */ 193 */
194 if (tsi && !strcmp(tsi->type, "tsi-bridge")) 194 if (tsi && !strcmp(tsi->type, "tsi-bridge"))
195 return add_legacy_port(np, -1, UPIO_TSI, addr, addr, 195 return add_legacy_port(np, -1, UPIO_TSI, addr, addr,
196 NO_IRQ, legacy_port_flags, 0); 196 0, legacy_port_flags, 0);
197 else 197 else
198 return add_legacy_port(np, -1, UPIO_MEM, addr, addr, 198 return add_legacy_port(np, -1, UPIO_MEM, addr, addr,
199 NO_IRQ, legacy_port_flags, 0); 199 0, legacy_port_flags, 0);
200} 200}
201 201
202static int __init add_legacy_isa_port(struct device_node *np, 202static int __init add_legacy_isa_port(struct device_node *np,
@@ -242,7 +242,7 @@ static int __init add_legacy_isa_port(struct device_node *np,
242 242
243 /* Add port, irq will be dealt with later */ 243 /* Add port, irq will be dealt with later */
244 return add_legacy_port(np, index, UPIO_PORT, be32_to_cpu(reg[1]), 244 return add_legacy_port(np, index, UPIO_PORT, be32_to_cpu(reg[1]),
245 taddr, NO_IRQ, legacy_port_flags, 0); 245 taddr, 0, legacy_port_flags, 0);
246 246
247} 247}
248 248
@@ -314,7 +314,7 @@ static int __init add_legacy_pci_port(struct device_node *np,
314 /* Add port, irq will be dealt with later. We passed a translated 314 /* Add port, irq will be dealt with later. We passed a translated
315 * IO port value. It will be fixed up later along with the irq 315 * IO port value. It will be fixed up later along with the irq
316 */ 316 */
317 return add_legacy_port(np, index, iotype, base, addr, NO_IRQ, 317 return add_legacy_port(np, index, iotype, base, addr, 0,
318 legacy_port_flags, np != pci_dev); 318 legacy_port_flags, np != pci_dev);
319} 319}
320#endif 320#endif
@@ -462,14 +462,14 @@ static void __init fixup_port_irq(int index,
462 DBG("fixup_port_irq(%d)\n", index); 462 DBG("fixup_port_irq(%d)\n", index);
463 463
464 virq = irq_of_parse_and_map(np, 0); 464 virq = irq_of_parse_and_map(np, 0);
465 if (virq == NO_IRQ && legacy_serial_infos[index].irq_check_parent) { 465 if (!virq && legacy_serial_infos[index].irq_check_parent) {
466 np = of_get_parent(np); 466 np = of_get_parent(np);
467 if (np == NULL) 467 if (np == NULL)
468 return; 468 return;
469 virq = irq_of_parse_and_map(np, 0); 469 virq = irq_of_parse_and_map(np, 0);
470 of_node_put(np); 470 of_node_put(np);
471 } 471 }
472 if (virq == NO_IRQ) 472 if (!virq)
473 return; 473 return;
474 474
475 port->irq = virq; 475 port->irq = virq;
@@ -543,7 +543,7 @@ static int __init serial_dev_init(void)
543 struct plat_serial8250_port *port = &legacy_serial_ports[i]; 543 struct plat_serial8250_port *port = &legacy_serial_ports[i];
544 struct device_node *np = legacy_serial_infos[i].np; 544 struct device_node *np = legacy_serial_infos[i].np;
545 545
546 if (port->irq == NO_IRQ) 546 if (!port->irq)
547 fixup_port_irq(i, np, port); 547 fixup_port_irq(i, np, port);
548 if (port->iotype == UPIO_PORT) 548 if (port->iotype == UPIO_PORT)
549 fixup_port_pio(i, np, port); 549 fixup_port_pio(i, np, port);
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index e58908066b0e..95d3769a2e26 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -360,7 +360,7 @@ static int pci_read_irq_line(struct pci_dev *pci_dev)
360 line, pin); 360 line, pin);
361 361
362 virq = irq_create_mapping(NULL, line); 362 virq = irq_create_mapping(NULL, line);
363 if (virq != NO_IRQ) 363 if (virq)
364 irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW); 364 irq_set_irq_type(virq, IRQ_TYPE_LEVEL_LOW);
365 } else { 365 } else {
366 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n", 366 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n",
@@ -369,7 +369,8 @@ static int pci_read_irq_line(struct pci_dev *pci_dev)
369 369
370 virq = irq_create_of_mapping(&oirq); 370 virq = irq_create_of_mapping(&oirq);
371 } 371 }
372 if(virq == NO_IRQ) { 372
373 if (!virq) {
373 pr_debug(" Failed to map !\n"); 374 pr_debug(" Failed to map !\n");
374 return -1; 375 return -1;
375 } 376 }
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c
index 526ac6750e4d..ea3d98115b88 100644
--- a/arch/powerpc/kernel/pci_of_scan.c
+++ b/arch/powerpc/kernel/pci_of_scan.c
@@ -178,7 +178,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
178 dev->hdr_type = PCI_HEADER_TYPE_NORMAL; 178 dev->hdr_type = PCI_HEADER_TYPE_NORMAL;
179 dev->rom_base_reg = PCI_ROM_ADDRESS; 179 dev->rom_base_reg = PCI_ROM_ADDRESS;
180 /* Maybe do a default OF mapping here */ 180 /* Maybe do a default OF mapping here */
181 dev->irq = NO_IRQ; 181 dev->irq = 0;
182 } 182 }
183 183
184 of_pci_parse_addrs(node, dev); 184 of_pci_parse_addrs(node, dev);
diff --git a/arch/powerpc/platforms/44x/warp.c b/arch/powerpc/platforms/44x/warp.c
index 5ecce543103e..a886c2c22097 100644
--- a/arch/powerpc/platforms/44x/warp.c
+++ b/arch/powerpc/platforms/44x/warp.c
@@ -204,7 +204,7 @@ static void pika_setup_critical_temp(struct device_node *np,
204 i2c_smbus_write_byte_data(client, 3, 0); /* Tlow */ 204 i2c_smbus_write_byte_data(client, 3, 0); /* Tlow */
205 205
206 irq = irq_of_parse_and_map(np, 0); 206 irq = irq_of_parse_and_map(np, 0);
207 if (irq == NO_IRQ) { 207 if (!irq) {
208 printk(KERN_ERR __FILE__ ": Unable to get ad7414 irq\n"); 208 printk(KERN_ERR __FILE__ ": Unable to get ad7414 irq\n");
209 return; 209 return;
210 } 210 }
diff --git a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
index 0035d146df73..fe4d4eac7427 100644
--- a/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
+++ b/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c
@@ -97,7 +97,7 @@ cpld_pic_get_irq(int offset, u8 ignore, u8 __iomem *statusp,
97 status |= (ignore | mask); 97 status |= (ignore | mask);
98 98
99 if (status == 0xff) 99 if (status == 0xff)
100 return NO_IRQ; 100 return 0;
101 101
102 cpld_irq = ffz(status) + offset; 102 cpld_irq = ffz(status) + offset;
103 103
@@ -110,14 +110,14 @@ static void cpld_pic_cascade(struct irq_desc *desc)
110 110
111 irq = cpld_pic_get_irq(0, PCI_IGNORE, &cpld_regs->pci_status, 111 irq = cpld_pic_get_irq(0, PCI_IGNORE, &cpld_regs->pci_status,
112 &cpld_regs->pci_mask); 112 &cpld_regs->pci_mask);
113 if (irq != NO_IRQ) { 113 if (irq) {
114 generic_handle_irq(irq); 114 generic_handle_irq(irq);
115 return; 115 return;
116 } 116 }
117 117
118 irq = cpld_pic_get_irq(8, MISC_IGNORE, &cpld_regs->misc_status, 118 irq = cpld_pic_get_irq(8, MISC_IGNORE, &cpld_regs->misc_status,
119 &cpld_regs->misc_mask); 119 &cpld_regs->misc_mask);
120 if (irq != NO_IRQ) { 120 if (irq) {
121 generic_handle_irq(irq); 121 generic_handle_irq(irq);
122 return; 122 return;
123 } 123 }
@@ -177,7 +177,7 @@ mpc5121_ads_cpld_pic_init(void)
177 goto end; 177 goto end;
178 178
179 cascade_irq = irq_of_parse_and_map(np, 0); 179 cascade_irq = irq_of_parse_and_map(np, 0);
180 if (cascade_irq == NO_IRQ) 180 if (!cascade_irq)
181 goto end; 181 goto end;
182 182
183 /* 183 /*
diff --git a/arch/powerpc/platforms/512x/mpc512x_lpbfifo.c b/arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
index d93dd4acf40b..cec3f88f153d 100644
--- a/arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
+++ b/arch/powerpc/platforms/512x/mpc512x_lpbfifo.c
@@ -473,7 +473,7 @@ static int mpc512x_lpbfifo_probe(struct platform_device *pdev)
473 } 473 }
474 474
475 lpbfifo.irq = irq_of_parse_and_map(pdev->dev.of_node, 0); 475 lpbfifo.irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
476 if (lpbfifo.irq == NO_IRQ) { 476 if (!lpbfifo.irq) {
477 dev_err(&pdev->dev, "mapping irq failed\n"); 477 dev_err(&pdev->dev, "mapping irq failed\n");
478 ret = -ENODEV; 478 ret = -ENODEV;
479 goto err0; 479 goto err0;
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_pic.c b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
index 4fe2074c88cb..fc98912f42cf 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_pic.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_pic.c
@@ -511,7 +511,7 @@ unsigned int mpc52xx_get_irq(void)
511 irq |= (MPC52xx_IRQ_L1_PERP << MPC52xx_IRQ_L1_OFFSET); 511 irq |= (MPC52xx_IRQ_L1_PERP << MPC52xx_IRQ_L1_OFFSET);
512 } 512 }
513 } else { 513 } else {
514 return NO_IRQ; 514 return 0;
515 } 515 }
516 516
517 return irq_linear_revmap(mpc52xx_irqhost, irq); 517 return irq_linear_revmap(mpc52xx_irqhost, irq);
diff --git a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
index 60e89fc9c753..8b065bdf7412 100644
--- a/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
+++ b/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c
@@ -131,7 +131,7 @@ int __init pq2ads_pci_init_irq(void)
131 } 131 }
132 132
133 irq = irq_of_parse_and_map(np, 0); 133 irq = irq_of_parse_and_map(np, 0);
134 if (irq == NO_IRQ) { 134 if (!irq) {
135 printk(KERN_ERR "No interrupt in pci pic node.\n"); 135 printk(KERN_ERR "No interrupt in pci pic node.\n");
136 of_node_put(np); 136 of_node_put(np);
137 goto out; 137 goto out;
diff --git a/arch/powerpc/platforms/83xx/mpc832x_rdb.c b/arch/powerpc/platforms/83xx/mpc832x_rdb.c
index 2ef03e7d248c..0d6a62fc5864 100644
--- a/arch/powerpc/platforms/83xx/mpc832x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc832x_rdb.c
@@ -89,7 +89,7 @@ static int __init of_fsl_spi_probe(char *type, char *compatible, u32 sysclk,
89 goto err; 89 goto err;
90 90
91 ret = of_irq_to_resource(np, 0, &res[1]); 91 ret = of_irq_to_resource(np, 0, &res[1]);
92 if (ret == NO_IRQ) 92 if (!ret)
93 goto err; 93 goto err;
94 94
95 pdev = platform_device_alloc("mpc83xx_spi", i); 95 pdev = platform_device_alloc("mpc83xx_spi", i);
diff --git a/arch/powerpc/platforms/83xx/suspend.c b/arch/powerpc/platforms/83xx/suspend.c
index fcbea4b51a78..24717d060008 100644
--- a/arch/powerpc/platforms/83xx/suspend.c
+++ b/arch/powerpc/platforms/83xx/suspend.c
@@ -352,7 +352,7 @@ static int pmc_probe(struct platform_device *ofdev)
352 return -ENODEV; 352 return -ENODEV;
353 353
354 pmc_irq = irq_of_parse_and_map(np, 0); 354 pmc_irq = irq_of_parse_and_map(np, 0);
355 if (pmc_irq != NO_IRQ) { 355 if (pmc_irq) {
356 ret = request_irq(pmc_irq, pmc_irq_handler, IRQF_SHARED, 356 ret = request_irq(pmc_irq, pmc_irq_handler, IRQF_SHARED,
357 "pmc", ofdev); 357 "pmc", ofdev);
358 358
@@ -400,7 +400,7 @@ out_syscr:
400out_pmc: 400out_pmc:
401 iounmap(pmc_regs); 401 iounmap(pmc_regs);
402out: 402out:
403 if (pmc_irq != NO_IRQ) 403 if (pmc_irq)
404 free_irq(pmc_irq, ofdev); 404 free_irq(pmc_irq, ofdev);
405 405
406 return ret; 406 return ret;
diff --git a/arch/powerpc/platforms/85xx/common.c b/arch/powerpc/platforms/85xx/common.c
index 28720a4ded7b..954e5e8b14ef 100644
--- a/arch/powerpc/platforms/85xx/common.c
+++ b/arch/powerpc/platforms/85xx/common.c
@@ -76,7 +76,7 @@ void __init mpc85xx_cpm2_pic_init(void)
76 return; 76 return;
77 } 77 }
78 irq = irq_of_parse_and_map(np, 0); 78 irq = irq_of_parse_and_map(np, 0);
79 if (irq == NO_IRQ) { 79 if (!irq) {
80 of_node_put(np); 80 of_node_put(np);
81 printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n"); 81 printk(KERN_ERR "PIC init: got no IRQ for cpm cascade\n");
82 return; 82 return;
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_cds.c b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
index 62f171c71c4c..86f20156178e 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_cds.c
@@ -196,7 +196,7 @@ static void mpc85xx_8259_cascade_handler(struct irq_desc *desc)
196{ 196{
197 unsigned int cascade_irq = i8259_irq(); 197 unsigned int cascade_irq = i8259_irq();
198 198
199 if (cascade_irq != NO_IRQ) 199 if (cascade_irq)
200 /* handle an interrupt from the 8259 */ 200 /* handle an interrupt from the 8259 */
201 generic_handle_irq(cascade_irq); 201 generic_handle_irq(cascade_irq);
202 202
@@ -247,7 +247,7 @@ static int mpc85xx_cds_8259_attach(void)
247 } 247 }
248 248
249 cascade_irq = irq_of_parse_and_map(cascade_node, 0); 249 cascade_irq = irq_of_parse_and_map(cascade_node, 0);
250 if (cascade_irq == NO_IRQ) { 250 if (!cascade_irq) {
251 printk(KERN_ERR "Failed to map cascade interrupt\n"); 251 printk(KERN_ERR "Failed to map cascade interrupt\n");
252 return -ENXIO; 252 return -ENXIO;
253 } 253 }
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 6bc07d837b1c..ed69c7ee1829 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -51,7 +51,7 @@ static void mpc85xx_8259_cascade(struct irq_desc *desc)
51 struct irq_chip *chip = irq_desc_get_chip(desc); 51 struct irq_chip *chip = irq_desc_get_chip(desc);
52 unsigned int cascade_irq = i8259_irq(); 52 unsigned int cascade_irq = i8259_irq();
53 53
54 if (cascade_irq != NO_IRQ) { 54 if (cascade_irq) {
55 generic_handle_irq(cascade_irq); 55 generic_handle_irq(cascade_irq);
56 } 56 }
57 chip->irq_eoi(&desc->irq_data); 57 chip->irq_eoi(&desc->irq_data);
@@ -96,7 +96,7 @@ void __init mpc85xx_ds_pic_init(void)
96 } 96 }
97 97
98 cascade_irq = irq_of_parse_and_map(cascade_node, 0); 98 cascade_irq = irq_of_parse_and_map(cascade_node, 0);
99 if (cascade_irq == NO_IRQ) { 99 if (!cascade_irq) {
100 printk(KERN_ERR "Failed to map cascade interrupt\n"); 100 printk(KERN_ERR "Failed to map cascade interrupt\n");
101 return; 101 return;
102 } 102 }
diff --git a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
index b02d6a5bb035..82f8490b5aa7 100644
--- a/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
+++ b/arch/powerpc/platforms/85xx/socrates_fpga_pic.c
@@ -78,7 +78,7 @@ static inline unsigned int socrates_fpga_pic_get_irq(unsigned int irq)
78 break; 78 break;
79 } 79 }
80 if (i == 3) 80 if (i == 3)
81 return NO_IRQ; 81 return 0;
82 82
83 raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags); 83 raw_spin_lock_irqsave(&socrates_fpga_pic_lock, flags);
84 cause = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(i)); 84 cause = socrates_fpga_pic_read(FPGA_PIC_IRQMASK(i));
@@ -103,7 +103,7 @@ static void socrates_fpga_pic_cascade(struct irq_desc *desc)
103 */ 103 */
104 cascade_irq = socrates_fpga_pic_get_irq(irq); 104 cascade_irq = socrates_fpga_pic_get_irq(irq);
105 105
106 if (cascade_irq != NO_IRQ) 106 if (cascade_irq)
107 generic_handle_irq(cascade_irq); 107 generic_handle_irq(cascade_irq);
108 chip->irq_eoi(&desc->irq_data); 108 chip->irq_eoi(&desc->irq_data);
109} 109}
@@ -292,7 +292,7 @@ void socrates_fpga_pic_init(struct device_node *pic)
292 292
293 for (i = 0; i < 3; i++) { 293 for (i = 0; i < 3; i++) {
294 socrates_fpga_irqs[i] = irq_of_parse_and_map(pic, i); 294 socrates_fpga_irqs[i] = irq_of_parse_and_map(pic, i);
295 if (socrates_fpga_irqs[i] == NO_IRQ) { 295 if (!socrates_fpga_irqs[i]) {
296 pr_warning("FPGA PIC: can't get irq%d.\n", i); 296 pr_warning("FPGA PIC: can't get irq%d.\n", i);
297 continue; 297 continue;
298 } 298 }
diff --git a/arch/powerpc/platforms/86xx/pic.c b/arch/powerpc/platforms/86xx/pic.c
index 845defa1fd19..a6c695fa4da0 100644
--- a/arch/powerpc/platforms/86xx/pic.c
+++ b/arch/powerpc/platforms/86xx/pic.c
@@ -22,7 +22,7 @@ static void mpc86xx_8259_cascade(struct irq_desc *desc)
22 struct irq_chip *chip = irq_desc_get_chip(desc); 22 struct irq_chip *chip = irq_desc_get_chip(desc);
23 unsigned int cascade_irq = i8259_irq(); 23 unsigned int cascade_irq = i8259_irq();
24 24
25 if (cascade_irq != NO_IRQ) 25 if (cascade_irq)
26 generic_handle_irq(cascade_irq); 26 generic_handle_irq(cascade_irq);
27 27
28 chip->irq_eoi(&desc->irq_data); 28 chip->irq_eoi(&desc->irq_data);
@@ -58,7 +58,7 @@ void __init mpc86xx_init_irq(void)
58 } 58 }
59 59
60 cascade_irq = irq_of_parse_and_map(cascade_node, 0); 60 cascade_irq = irq_of_parse_and_map(cascade_node, 0);
61 if (cascade_irq == NO_IRQ) { 61 if (!cascade_irq) {
62 printk(KERN_ERR "Failed to map cascade interrupt\n"); 62 printk(KERN_ERR "Failed to map cascade interrupt\n");
63 return; 63 return;
64 } 64 }
diff --git a/arch/powerpc/platforms/8xx/m8xx_setup.c b/arch/powerpc/platforms/8xx/m8xx_setup.c
index b1ab6e96cb31..f81069f79a94 100644
--- a/arch/powerpc/platforms/8xx/m8xx_setup.c
+++ b/arch/powerpc/platforms/8xx/m8xx_setup.c
@@ -241,6 +241,6 @@ void __init mpc8xx_pics_init(void)
241 } 241 }
242 242
243 irq = cpm_pic_init(); 243 irq = cpm_pic_init();
244 if (irq != NO_IRQ) 244 if (irq)
245 irq_set_chained_handler(irq, cpm_cascade); 245 irq_set_chained_handler(irq, cpm_cascade);
246} 246}
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c
index aed7714495c1..8b55c5f19d4c 100644
--- a/arch/powerpc/platforms/cell/axon_msi.c
+++ b/arch/powerpc/platforms/cell/axon_msi.c
@@ -271,7 +271,7 @@ static int axon_msi_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
271 271
272 for_each_pci_msi_entry(entry, dev) { 272 for_each_pci_msi_entry(entry, dev) {
273 virq = irq_create_direct_mapping(msic->irq_domain); 273 virq = irq_create_direct_mapping(msic->irq_domain);
274 if (virq == NO_IRQ) { 274 if (!virq) {
275 dev_warn(&dev->dev, 275 dev_warn(&dev->dev,
276 "axon_msi: virq allocation failed!\n"); 276 "axon_msi: virq allocation failed!\n");
277 return -1; 277 return -1;
@@ -293,7 +293,7 @@ static void axon_msi_teardown_msi_irqs(struct pci_dev *dev)
293 dev_dbg(&dev->dev, "axon_msi: tearing down msi irqs\n"); 293 dev_dbg(&dev->dev, "axon_msi: tearing down msi irqs\n");
294 294
295 for_each_pci_msi_entry(entry, dev) { 295 for_each_pci_msi_entry(entry, dev) {
296 if (entry->irq == NO_IRQ) 296 if (!entry->irq)
297 continue; 297 continue;
298 298
299 irq_set_msi_desc(entry->irq, NULL); 299 irq_set_msi_desc(entry->irq, NULL);
@@ -375,7 +375,7 @@ static int axon_msi_probe(struct platform_device *device)
375 } 375 }
376 376
377 virq = irq_of_parse_and_map(dn, 0); 377 virq = irq_of_parse_and_map(dn, 0);
378 if (virq == NO_IRQ) { 378 if (!virq) {
379 printk(KERN_ERR "axon_msi: irq parse and map failed for %s\n", 379 printk(KERN_ERR "axon_msi: irq parse and map failed for %s\n",
380 dn->full_name); 380 dn->full_name);
381 goto out_free_fifo; 381 goto out_free_fifo;
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c
index 4d16b368b6f5..a6bbbaba14a3 100644
--- a/arch/powerpc/platforms/cell/interrupt.c
+++ b/arch/powerpc/platforms/cell/interrupt.c
@@ -123,7 +123,7 @@ static void iic_ioexc_cascade(struct irq_desc *desc)
123 unsigned int cirq = 123 unsigned int cirq =
124 irq_linear_revmap(iic_host, 124 irq_linear_revmap(iic_host,
125 base | cascade); 125 base | cascade);
126 if (cirq != NO_IRQ) 126 if (cirq)
127 generic_handle_irq(cirq); 127 generic_handle_irq(cirq);
128 } 128 }
129 /* post-ack level interrupts */ 129 /* post-ack level interrupts */
@@ -153,10 +153,10 @@ static unsigned int iic_get_irq(void)
153 *(unsigned long *) &pending = 153 *(unsigned long *) &pending =
154 in_be64((u64 __iomem *) &iic->regs->pending_destr); 154 in_be64((u64 __iomem *) &iic->regs->pending_destr);
155 if (!(pending.flags & CBE_IIC_IRQ_VALID)) 155 if (!(pending.flags & CBE_IIC_IRQ_VALID))
156 return NO_IRQ; 156 return 0;
157 virq = irq_linear_revmap(iic_host, iic_pending_to_hwnum(pending)); 157 virq = irq_linear_revmap(iic_host, iic_pending_to_hwnum(pending));
158 if (virq == NO_IRQ) 158 if (!virq)
159 return NO_IRQ; 159 return 0;
160 iic->eoi_stack[++iic->eoi_ptr] = pending.prio; 160 iic->eoi_stack[++iic->eoi_ptr] = pending.prio;
161 BUG_ON(iic->eoi_ptr > 15); 161 BUG_ON(iic->eoi_ptr > 15);
162 return virq; 162 return virq;
@@ -192,7 +192,7 @@ static void iic_request_ipi(int msg)
192 int virq; 192 int virq;
193 193
194 virq = irq_create_mapping(iic_host, iic_msg_to_irq(msg)); 194 virq = irq_create_mapping(iic_host, iic_msg_to_irq(msg));
195 if (virq == NO_IRQ) { 195 if (!virq) {
196 printk(KERN_ERR 196 printk(KERN_ERR
197 "iic: failed to map IPI %s\n", smp_ipi_name[msg]); 197 "iic: failed to map IPI %s\n", smp_ipi_name[msg]);
198 return; 198 return;
@@ -347,7 +347,7 @@ static int __init setup_iic(void)
347 cascade |= 1 << IIC_IRQ_CLASS_SHIFT; 347 cascade |= 1 << IIC_IRQ_CLASS_SHIFT;
348 cascade |= IIC_UNIT_IIC; 348 cascade |= IIC_UNIT_IIC;
349 cascade = irq_create_mapping(iic_host, cascade); 349 cascade = irq_create_mapping(iic_host, cascade);
350 if (cascade == NO_IRQ) 350 if (!cascade)
351 continue; 351 continue;
352 /* 352 /*
353 * irq_data is a generic pointer that gets passed back 353 * irq_data is a generic pointer that gets passed back
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c
index 640772af9bcb..7ff51f96a00e 100644
--- a/arch/powerpc/platforms/cell/iommu.c
+++ b/arch/powerpc/platforms/cell/iommu.c
@@ -411,7 +411,7 @@ static void cell_iommu_enable_hardware(struct cbe_iommu *iommu)
411 411
412 virq = irq_create_mapping(NULL, 412 virq = irq_create_mapping(NULL,
413 IIC_IRQ_IOEX_ATI | (iommu->nid << IIC_IRQ_NODE_SHIFT)); 413 IIC_IRQ_IOEX_ATI | (iommu->nid << IIC_IRQ_NODE_SHIFT));
414 BUG_ON(virq == NO_IRQ); 414 BUG_ON(!virq);
415 415
416 ret = request_irq(virq, ioc_interrupt, 0, iommu->name, iommu); 416 ret = request_irq(virq, ioc_interrupt, 0, iommu->name, iommu);
417 BUG_ON(ret); 417 BUG_ON(ret);
diff --git a/arch/powerpc/platforms/cell/pmu.c b/arch/powerpc/platforms/cell/pmu.c
index 348a27b12512..e3ad0c38f017 100644
--- a/arch/powerpc/platforms/cell/pmu.c
+++ b/arch/powerpc/platforms/cell/pmu.c
@@ -385,7 +385,7 @@ static int __init cbe_init_pm_irq(void)
385 for_each_online_node(node) { 385 for_each_online_node(node) {
386 irq = irq_create_mapping(NULL, IIC_IRQ_IOEX_PMI | 386 irq = irq_create_mapping(NULL, IIC_IRQ_IOEX_PMI |
387 (node << IIC_IRQ_NODE_SHIFT)); 387 (node << IIC_IRQ_NODE_SHIFT));
388 if (irq == NO_IRQ) { 388 if (!irq) {
389 printk("ERROR: Unable to allocate irq for node %d\n", 389 printk("ERROR: Unable to allocate irq for node %d\n",
390 node); 390 node);
391 return -EINVAL; 391 return -EINVAL;
@@ -412,7 +412,7 @@ void cbe_sync_irq(int node)
412 IIC_IRQ_IOEX_PMI 412 IIC_IRQ_IOEX_PMI
413 | (node << IIC_IRQ_NODE_SHIFT)); 413 | (node << IIC_IRQ_NODE_SHIFT));
414 414
415 if (irq == NO_IRQ) { 415 if (!irq) {
416 printk(KERN_WARNING "ERROR, unable to get existing irq %d " \ 416 printk(KERN_WARNING "ERROR, unable to get existing irq %d " \
417 "for node %d\n", irq, node); 417 "for node %d\n", irq, node);
418 return; 418 return;
diff --git a/arch/powerpc/platforms/cell/spider-pic.c b/arch/powerpc/platforms/cell/spider-pic.c
index d06dcac66fcb..ff924af00e78 100644
--- a/arch/powerpc/platforms/cell/spider-pic.c
+++ b/arch/powerpc/platforms/cell/spider-pic.c
@@ -207,11 +207,11 @@ static void spider_irq_cascade(struct irq_desc *desc)
207 207
208 cs = in_be32(pic->regs + TIR_CS) >> 24; 208 cs = in_be32(pic->regs + TIR_CS) >> 24;
209 if (cs == SPIDER_IRQ_INVALID) 209 if (cs == SPIDER_IRQ_INVALID)
210 virq = NO_IRQ; 210 virq = 0;
211 else 211 else
212 virq = irq_linear_revmap(pic->host, cs); 212 virq = irq_linear_revmap(pic->host, cs);
213 213
214 if (virq != NO_IRQ) 214 if (virq)
215 generic_handle_irq(virq); 215 generic_handle_irq(virq);
216 216
217 chip->irq_eoi(&desc->irq_data); 217 chip->irq_eoi(&desc->irq_data);
@@ -245,19 +245,19 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
245 /* Now do the horrible hacks */ 245 /* Now do the horrible hacks */
246 tmp = of_get_property(of_node, "#interrupt-cells", NULL); 246 tmp = of_get_property(of_node, "#interrupt-cells", NULL);
247 if (tmp == NULL) 247 if (tmp == NULL)
248 return NO_IRQ; 248 return 0;
249 intsize = *tmp; 249 intsize = *tmp;
250 imap = of_get_property(of_node, "interrupt-map", &imaplen); 250 imap = of_get_property(of_node, "interrupt-map", &imaplen);
251 if (imap == NULL || imaplen < (intsize + 1)) 251 if (imap == NULL || imaplen < (intsize + 1))
252 return NO_IRQ; 252 return 0;
253 iic = of_find_node_by_phandle(imap[intsize]); 253 iic = of_find_node_by_phandle(imap[intsize]);
254 if (iic == NULL) 254 if (iic == NULL)
255 return NO_IRQ; 255 return 0;
256 imap += intsize + 1; 256 imap += intsize + 1;
257 tmp = of_get_property(iic, "#interrupt-cells", NULL); 257 tmp = of_get_property(iic, "#interrupt-cells", NULL);
258 if (tmp == NULL) { 258 if (tmp == NULL) {
259 of_node_put(iic); 259 of_node_put(iic);
260 return NO_IRQ; 260 return 0;
261 } 261 }
262 intsize = *tmp; 262 intsize = *tmp;
263 /* Assume unit is last entry of interrupt specifier */ 263 /* Assume unit is last entry of interrupt specifier */
@@ -266,7 +266,7 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
266 tmp = of_get_property(iic, "ibm,interrupt-server-ranges", NULL); 266 tmp = of_get_property(iic, "ibm,interrupt-server-ranges", NULL);
267 if (tmp == NULL) { 267 if (tmp == NULL) {
268 of_node_put(iic); 268 of_node_put(iic);
269 return NO_IRQ; 269 return 0;
270 } 270 }
271 /* ugly as hell but works for now */ 271 /* ugly as hell but works for now */
272 pic->node_id = (*tmp) >> 1; 272 pic->node_id = (*tmp) >> 1;
@@ -281,7 +281,7 @@ static unsigned int __init spider_find_cascade_and_node(struct spider_pic *pic)
281 (pic->node_id << IIC_IRQ_NODE_SHIFT) | 281 (pic->node_id << IIC_IRQ_NODE_SHIFT) |
282 (2 << IIC_IRQ_CLASS_SHIFT) | 282 (2 << IIC_IRQ_CLASS_SHIFT) |
283 unit); 283 unit);
284 if (virq == NO_IRQ) 284 if (!virq)
285 printk(KERN_ERR "spider_pic: failed to map cascade !"); 285 printk(KERN_ERR "spider_pic: failed to map cascade !");
286 return virq; 286 return virq;
287} 287}
@@ -318,7 +318,7 @@ static void __init spider_init_one(struct device_node *of_node, int chip,
318 318
319 /* Hook up the cascade interrupt to the iic and nodeid */ 319 /* Hook up the cascade interrupt to the iic and nodeid */
320 virq = spider_find_cascade_and_node(pic); 320 virq = spider_find_cascade_and_node(pic);
321 if (virq == NO_IRQ) 321 if (!virq)
322 return; 322 return;
323 irq_set_handler_data(virq, pic); 323 irq_set_handler_data(virq, pic);
324 irq_set_chained_handler(virq, spider_irq_cascade); 324 irq_set_chained_handler(virq, spider_irq_cascade);
diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
index bb4a8e07c229..e84d8fbc2e21 100644
--- a/arch/powerpc/platforms/cell/spu_base.c
+++ b/arch/powerpc/platforms/cell/spu_base.c
@@ -402,7 +402,7 @@ static int spu_request_irqs(struct spu *spu)
402{ 402{
403 int ret = 0; 403 int ret = 0;
404 404
405 if (spu->irqs[0] != NO_IRQ) { 405 if (spu->irqs[0]) {
406 snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0", 406 snprintf(spu->irq_c0, sizeof (spu->irq_c0), "spe%02d.0",
407 spu->number); 407 spu->number);
408 ret = request_irq(spu->irqs[0], spu_irq_class_0, 408 ret = request_irq(spu->irqs[0], spu_irq_class_0,
@@ -410,7 +410,7 @@ static int spu_request_irqs(struct spu *spu)
410 if (ret) 410 if (ret)
411 goto bail0; 411 goto bail0;
412 } 412 }
413 if (spu->irqs[1] != NO_IRQ) { 413 if (spu->irqs[1]) {
414 snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1", 414 snprintf(spu->irq_c1, sizeof (spu->irq_c1), "spe%02d.1",
415 spu->number); 415 spu->number);
416 ret = request_irq(spu->irqs[1], spu_irq_class_1, 416 ret = request_irq(spu->irqs[1], spu_irq_class_1,
@@ -418,7 +418,7 @@ static int spu_request_irqs(struct spu *spu)
418 if (ret) 418 if (ret)
419 goto bail1; 419 goto bail1;
420 } 420 }
421 if (spu->irqs[2] != NO_IRQ) { 421 if (spu->irqs[2]) {
422 snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2", 422 snprintf(spu->irq_c2, sizeof (spu->irq_c2), "spe%02d.2",
423 spu->number); 423 spu->number);
424 ret = request_irq(spu->irqs[2], spu_irq_class_2, 424 ret = request_irq(spu->irqs[2], spu_irq_class_2,
@@ -429,10 +429,10 @@ static int spu_request_irqs(struct spu *spu)
429 return 0; 429 return 0;
430 430
431bail2: 431bail2:
432 if (spu->irqs[1] != NO_IRQ) 432 if (spu->irqs[1])
433 free_irq(spu->irqs[1], spu); 433 free_irq(spu->irqs[1], spu);
434bail1: 434bail1:
435 if (spu->irqs[0] != NO_IRQ) 435 if (spu->irqs[0])
436 free_irq(spu->irqs[0], spu); 436 free_irq(spu->irqs[0], spu);
437bail0: 437bail0:
438 return ret; 438 return ret;
@@ -440,11 +440,11 @@ bail0:
440 440
441static void spu_free_irqs(struct spu *spu) 441static void spu_free_irqs(struct spu *spu)
442{ 442{
443 if (spu->irqs[0] != NO_IRQ) 443 if (spu->irqs[0])
444 free_irq(spu->irqs[0], spu); 444 free_irq(spu->irqs[0], spu);
445 if (spu->irqs[1] != NO_IRQ) 445 if (spu->irqs[1])
446 free_irq(spu->irqs[1], spu); 446 free_irq(spu->irqs[1], spu);
447 if (spu->irqs[2] != NO_IRQ) 447 if (spu->irqs[2])
448 free_irq(spu->irqs[2], spu); 448 free_irq(spu->irqs[2], spu);
449} 449}
450 450
diff --git a/arch/powerpc/platforms/cell/spu_manage.c b/arch/powerpc/platforms/cell/spu_manage.c
index 21b4bfb97200..672d310dcf14 100644
--- a/arch/powerpc/platforms/cell/spu_manage.c
+++ b/arch/powerpc/platforms/cell/spu_manage.c
@@ -105,7 +105,10 @@ static int __init spu_map_interrupts_old(struct spu *spu,
105 spu->irqs[2] = irq_create_mapping(NULL, IIC_IRQ_CLASS_2 | isrc); 105 spu->irqs[2] = irq_create_mapping(NULL, IIC_IRQ_CLASS_2 | isrc);
106 106
107 /* Right now, we only fail if class 2 failed */ 107 /* Right now, we only fail if class 2 failed */
108 return spu->irqs[2] == NO_IRQ ? -EINVAL : 0; 108 if (!spu->irqs[2])
109 return -EINVAL;
110
111 return 0;
109} 112}
110 113
111static void __iomem * __init spu_map_prop_old(struct spu *spu, 114static void __iomem * __init spu_map_prop_old(struct spu *spu,
@@ -191,7 +194,7 @@ static int __init spu_map_interrupts(struct spu *spu, struct device_node *np)
191 pr_debug(" irq %d no 0x%x on %s\n", i, oirq.args[0], 194 pr_debug(" irq %d no 0x%x on %s\n", i, oirq.args[0],
192 oirq.np->full_name); 195 oirq.np->full_name);
193 spu->irqs[i] = irq_create_of_mapping(&oirq); 196 spu->irqs[i] = irq_create_of_mapping(&oirq);
194 if (spu->irqs[i] == NO_IRQ) { 197 if (!spu->irqs[i]) {
195 pr_debug("spu_new: failed to map it !\n"); 198 pr_debug("spu_new: failed to map it !\n");
196 goto err; 199 goto err;
197 } 200 }
@@ -202,7 +205,7 @@ err:
202 pr_debug("failed to map irq %x for spu %s\n", *oirq.args, 205 pr_debug("failed to map irq %x for spu %s\n", *oirq.args,
203 spu->name); 206 spu->name);
204 for (; i >= 0; i--) { 207 for (; i >= 0; i--) {
205 if (spu->irqs[i] != NO_IRQ) 208 if (spu->irqs[i])
206 irq_dispose_mapping(spu->irqs[i]); 209 irq_dispose_mapping(spu->irqs[i]);
207 } 210 }
208 return ret; 211 return ret;
diff --git a/arch/powerpc/platforms/chrp/setup.c b/arch/powerpc/platforms/chrp/setup.c
index bfb300633dfe..0ce1b45f02a8 100644
--- a/arch/powerpc/platforms/chrp/setup.c
+++ b/arch/powerpc/platforms/chrp/setup.c
@@ -368,7 +368,7 @@ static void chrp_8259_cascade(struct irq_desc *desc)
368 struct irq_chip *chip = irq_desc_get_chip(desc); 368 struct irq_chip *chip = irq_desc_get_chip(desc);
369 unsigned int cascade_irq = i8259_irq(); 369 unsigned int cascade_irq = i8259_irq();
370 370
371 if (cascade_irq != NO_IRQ) 371 if (cascade_irq)
372 generic_handle_irq(cascade_irq); 372 generic_handle_irq(cascade_irq);
373 373
374 chip->irq_eoi(&desc->irq_data); 374 chip->irq_eoi(&desc->irq_data);
@@ -514,7 +514,7 @@ static void __init chrp_find_8259(void)
514 } 514 }
515 if (chrp_mpic != NULL) { 515 if (chrp_mpic != NULL) {
516 cascade_irq = irq_of_parse_and_map(pic, 0); 516 cascade_irq = irq_of_parse_and_map(pic, 0);
517 if (cascade_irq == NO_IRQ) 517 if (!cascade_irq)
518 printk(KERN_ERR "i8259: failed to map cascade irq\n"); 518 printk(KERN_ERR "i8259: failed to map cascade irq\n");
519 else 519 else
520 irq_set_chained_handler(cascade_irq, 520 irq_set_chained_handler(cascade_irq,
diff --git a/arch/powerpc/platforms/embedded6xx/flipper-pic.c b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
index b7866e01483d..ade83829d5e8 100644
--- a/arch/powerpc/platforms/embedded6xx/flipper-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/flipper-pic.c
@@ -181,7 +181,7 @@ unsigned int flipper_pic_get_irq(void)
181 irq_status = in_be32(io_base + FLIPPER_ICR) & 181 irq_status = in_be32(io_base + FLIPPER_ICR) &
182 in_be32(io_base + FLIPPER_IMR); 182 in_be32(io_base + FLIPPER_IMR);
183 if (irq_status == 0) 183 if (irq_status == 0)
184 return NO_IRQ; /* no more IRQs pending */ 184 return 0; /* no more IRQs pending */
185 185
186 irq = __ffs(irq_status); 186 irq = __ffs(irq_status);
187 return irq_linear_revmap(flipper_irq_host, irq); 187 return irq_linear_revmap(flipper_irq_host, irq);
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
index 9b7975706bfc..89c54de88b7a 100644
--- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
+++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c
@@ -114,7 +114,7 @@ static unsigned int __hlwd_pic_get_irq(struct irq_domain *h)
114 irq_status = in_be32(io_base + HW_BROADWAY_ICR) & 114 irq_status = in_be32(io_base + HW_BROADWAY_ICR) &
115 in_be32(io_base + HW_BROADWAY_IMR); 115 in_be32(io_base + HW_BROADWAY_IMR);
116 if (irq_status == 0) 116 if (irq_status == 0)
117 return NO_IRQ; /* no more IRQs pending */ 117 return 0; /* no more IRQs pending */
118 118
119 irq = __ffs(irq_status); 119 irq = __ffs(irq_status);
120 return irq_linear_revmap(h, irq); 120 return irq_linear_revmap(h, irq);
@@ -131,7 +131,7 @@ static void hlwd_pic_irq_cascade(struct irq_desc *desc)
131 raw_spin_unlock(&desc->lock); 131 raw_spin_unlock(&desc->lock);
132 132
133 virq = __hlwd_pic_get_irq(irq_domain); 133 virq = __hlwd_pic_get_irq(irq_domain);
134 if (virq != NO_IRQ) 134 if (virq)
135 generic_handle_irq(virq); 135 generic_handle_irq(virq);
136 else 136 else
137 pr_err("spurious interrupt!\n"); 137 pr_err("spurious interrupt!\n");
diff --git a/arch/powerpc/platforms/embedded6xx/mvme5100.c b/arch/powerpc/platforms/embedded6xx/mvme5100.c
index ed7321d6772e..8e3590941960 100644
--- a/arch/powerpc/platforms/embedded6xx/mvme5100.c
+++ b/arch/powerpc/platforms/embedded6xx/mvme5100.c
@@ -47,7 +47,7 @@ static void mvme5100_8259_cascade(struct irq_desc *desc)
47 struct irq_chip *chip = irq_desc_get_chip(desc); 47 struct irq_chip *chip = irq_desc_get_chip(desc);
48 unsigned int cascade_irq = i8259_irq(); 48 unsigned int cascade_irq = i8259_irq();
49 49
50 if (cascade_irq != NO_IRQ) 50 if (cascade_irq)
51 generic_handle_irq(cascade_irq); 51 generic_handle_irq(cascade_irq);
52 52
53 chip->irq_eoi(&desc->irq_data); 53 chip->irq_eoi(&desc->irq_data);
@@ -84,7 +84,7 @@ static void __init mvme5100_pic_init(void)
84 } 84 }
85 85
86 cirq = irq_of_parse_and_map(cp, 0); 86 cirq = irq_of_parse_and_map(cp, 0);
87 if (cirq == NO_IRQ) { 87 if (!cirq) {
88 pr_warn("mvme5100_pic_init: no cascade interrupt?\n"); 88 pr_warn("mvme5100_pic_init: no cascade interrupt?\n");
89 return; 89 return;
90 } 90 }
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index a2f89e6326ce..a0589aac4163 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -552,7 +552,7 @@ void maple_pci_irq_fixup(struct pci_dev *dev)
552 pci_bus_to_host(dev->bus) == u4_pcie) { 552 pci_bus_to_host(dev->bus) == u4_pcie) {
553 printk(KERN_DEBUG "Fixup U4 PCIe IRQ\n"); 553 printk(KERN_DEBUG "Fixup U4 PCIe IRQ\n");
554 dev->irq = irq_create_mapping(NULL, 1); 554 dev->irq = irq_create_mapping(NULL, 1);
555 if (dev->irq != NO_IRQ) 555 if (dev->irq)
556 irq_set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW); 556 irq_set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW);
557 } 557 }
558 558
@@ -562,7 +562,7 @@ void maple_pci_irq_fixup(struct pci_dev *dev)
562 if (dev->vendor == PCI_VENDOR_ID_AMD && 562 if (dev->vendor == PCI_VENDOR_ID_AMD &&
563 dev->device == PCI_DEVICE_ID_AMD_8111_IDE && 563 dev->device == PCI_DEVICE_ID_AMD_8111_IDE &&
564 (dev->class & 5) != 5) { 564 (dev->class & 5) != 5) {
565 dev->irq = NO_IRQ; 565 dev->irq = 0;
566 } 566 }
567 567
568 DBG(" <- maple_pci_irq_fixup\n"); 568 DBG(" <- maple_pci_irq_fixup\n");
@@ -648,7 +648,7 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
648 return defirq; 648 return defirq;
649 } 649 }
650 irq = irq_of_parse_and_map(np, channel & 0x1); 650 irq = irq_of_parse_and_map(np, channel & 0x1);
651 if (irq == NO_IRQ) { 651 if (!irq) {
652 printk("Failed to map onboard IDE interrupt for channel %d\n", 652 printk("Failed to map onboard IDE interrupt for channel %d\n",
653 channel); 653 channel);
654 return defirq; 654 return defirq;
diff --git a/arch/powerpc/platforms/pasemi/misc.c b/arch/powerpc/platforms/pasemi/misc.c
index e0ab299763c1..8571e7bf78b6 100644
--- a/arch/powerpc/platforms/pasemi/misc.c
+++ b/arch/powerpc/platforms/pasemi/misc.c
@@ -76,7 +76,7 @@ static int __init pasemi_register_i2c_devices(void)
76 } 76 }
77 77
78 info.irq = irq_of_parse_and_map(node, 0); 78 info.irq = irq_of_parse_and_map(node, 0);
79 if (info.irq == NO_IRQ) 79 if (!info.irq)
80 info.irq = -1; 80 info.irq = -1;
81 81
82 if (find_i2c_driver(node, &info) < 0) 82 if (find_i2c_driver(node, &info) < 0)
diff --git a/arch/powerpc/platforms/pasemi/msi.c b/arch/powerpc/platforms/pasemi/msi.c
index d9af76342d99..d9cd510c8865 100644
--- a/arch/powerpc/platforms/pasemi/msi.c
+++ b/arch/powerpc/platforms/pasemi/msi.c
@@ -68,7 +68,7 @@ static void pasemi_msi_teardown_msi_irqs(struct pci_dev *pdev)
68 pr_debug("pasemi_msi_teardown_msi_irqs, pdev %p\n", pdev); 68 pr_debug("pasemi_msi_teardown_msi_irqs, pdev %p\n", pdev);
69 69
70 for_each_pci_msi_entry(entry, pdev) { 70 for_each_pci_msi_entry(entry, pdev) {
71 if (entry->irq == NO_IRQ) 71 if (!entry->irq)
72 continue; 72 continue;
73 73
74 hwirq = virq_to_hw(entry->irq); 74 hwirq = virq_to_hw(entry->irq);
@@ -109,7 +109,7 @@ static int pasemi_msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
109 } 109 }
110 110
111 virq = irq_create_mapping(msi_mpic->irqhost, hwirq); 111 virq = irq_create_mapping(msi_mpic->irqhost, hwirq);
112 if (virq == NO_IRQ) { 112 if (!virq) {
113 pr_debug("pasemi_msi: failed mapping hwirq 0x%x\n", 113 pr_debug("pasemi_msi: failed mapping hwirq 0x%x\n",
114 hwirq); 114 hwirq);
115 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, 115 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq,
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index 1d0c3a621a38..3182400cf48f 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -59,7 +59,7 @@ struct mce_regs {
59 59
60static struct mce_regs mce_regs[MAX_MCE_REGS]; 60static struct mce_regs mce_regs[MAX_MCE_REGS];
61static int num_mce_regs; 61static int num_mce_regs;
62static int nmi_virq = NO_IRQ; 62static int nmi_virq = 0;
63 63
64 64
65static void __noreturn pas_restart(char *cmd) 65static void __noreturn pas_restart(char *cmd)
@@ -264,7 +264,7 @@ static int pas_machine_check_handler(struct pt_regs *regs)
264 srr0 = regs->nip; 264 srr0 = regs->nip;
265 srr1 = regs->msr; 265 srr1 = regs->msr;
266 266
267 if (nmi_virq != NO_IRQ && mpic_get_mcirq() == nmi_virq) { 267 if (nmi_virq && mpic_get_mcirq() == nmi_virq) {
268 printk(KERN_ERR "NMI delivered\n"); 268 printk(KERN_ERR "NMI delivered\n");
269 debugger(regs); 269 debugger(regs);
270 mpic_end_irq(irq_get_irq_data(nmi_virq)); 270 mpic_end_irq(irq_get_irq_data(nmi_virq));
diff --git a/arch/powerpc/platforms/powermac/low_i2c.c b/arch/powerpc/platforms/powermac/low_i2c.c
index 6d6f277477aa..c8c217b7dd33 100644
--- a/arch/powerpc/platforms/powermac/low_i2c.c
+++ b/arch/powerpc/platforms/powermac/low_i2c.c
@@ -401,7 +401,7 @@ static int kw_i2c_xfer(struct pmac_i2c_bus *bus, u8 addrdir, int subsize,
401{ 401{
402 struct pmac_i2c_host_kw *host = bus->hostdata; 402 struct pmac_i2c_host_kw *host = bus->hostdata;
403 u8 mode_reg = host->speed; 403 u8 mode_reg = host->speed;
404 int use_irq = host->irq != NO_IRQ && !bus->polled; 404 int use_irq = host->irq && !bus->polled;
405 405
406 /* Setup mode & subaddress if any */ 406 /* Setup mode & subaddress if any */
407 switch(bus->mode) { 407 switch(bus->mode) {
@@ -535,7 +535,7 @@ static struct pmac_i2c_host_kw *__init kw_i2c_host_init(struct device_node *np)
535 break; 535 break;
536 } 536 }
537 host->irq = irq_of_parse_and_map(np, 0); 537 host->irq = irq_of_parse_and_map(np, 0);
538 if (host->irq == NO_IRQ) 538 if (!host->irq)
539 printk(KERN_WARNING 539 printk(KERN_WARNING
540 "low_i2c: Failed to map interrupt for %s\n", 540 "low_i2c: Failed to map interrupt for %s\n",
541 np->full_name); 541 np->full_name);
@@ -557,7 +557,7 @@ static struct pmac_i2c_host_kw *__init kw_i2c_host_init(struct device_node *np)
557 */ 557 */
558 if (request_irq(host->irq, kw_i2c_irq, IRQF_NO_SUSPEND, 558 if (request_irq(host->irq, kw_i2c_irq, IRQF_NO_SUSPEND,
559 "keywest i2c", host)) 559 "keywest i2c", host))
560 host->irq = NO_IRQ; 560 host->irq = 0;
561 561
562 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n", 562 printk(KERN_INFO "KeyWest i2c @0x%08x irq %d %s\n",
563 *addrp, host->irq, np->full_name); 563 *addrp, host->irq, np->full_name);
diff --git a/arch/powerpc/platforms/powermac/pfunc_base.c b/arch/powerpc/platforms/powermac/pfunc_base.c
index e49d07f3d542..459138ed4571 100644
--- a/arch/powerpc/platforms/powermac/pfunc_base.c
+++ b/arch/powerpc/platforms/powermac/pfunc_base.c
@@ -26,7 +26,7 @@ static irqreturn_t macio_gpio_irq(int irq, void *data)
26static int macio_do_gpio_irq_enable(struct pmf_function *func) 26static int macio_do_gpio_irq_enable(struct pmf_function *func)
27{ 27{
28 unsigned int irq = irq_of_parse_and_map(func->node, 0); 28 unsigned int irq = irq_of_parse_and_map(func->node, 0);
29 if (irq == NO_IRQ) 29 if (!irq)
30 return -EINVAL; 30 return -EINVAL;
31 return request_irq(irq, macio_gpio_irq, 0, func->node->name, func); 31 return request_irq(irq, macio_gpio_irq, 0, func->node->name, func);
32} 32}
@@ -34,7 +34,7 @@ static int macio_do_gpio_irq_enable(struct pmf_function *func)
34static int macio_do_gpio_irq_disable(struct pmf_function *func) 34static int macio_do_gpio_irq_disable(struct pmf_function *func)
35{ 35{
36 unsigned int irq = irq_of_parse_and_map(func->node, 0); 36 unsigned int irq = irq_of_parse_and_map(func->node, 0);
37 if (irq == NO_IRQ) 37 if (!irq)
38 return -EINVAL; 38 return -EINVAL;
39 free_irq(irq, func); 39 free_irq(irq, func);
40 return 0; 40 return 0;
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 981546345033..f5f9ad7c3398 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -251,7 +251,7 @@ static unsigned int pmac_pic_get_irq(void)
251 } 251 }
252 raw_spin_unlock_irqrestore(&pmac_pic_lock, flags); 252 raw_spin_unlock_irqrestore(&pmac_pic_lock, flags);
253 if (unlikely(irq < 0)) 253 if (unlikely(irq < 0))
254 return NO_IRQ; 254 return 0;
255 return irq_linear_revmap(pmac_pic_host, irq); 255 return irq_linear_revmap(pmac_pic_host, irq);
256} 256}
257 257
@@ -389,7 +389,7 @@ static void __init pmac_pic_probe_oldstyle(void)
389 out_le32(&pmac_irq_hw[i]->enable, 0); 389 out_le32(&pmac_irq_hw[i]->enable, 0);
390 390
391 /* Hookup cascade irq */ 391 /* Hookup cascade irq */
392 if (slave && pmac_irq_cascade != NO_IRQ) 392 if (slave && pmac_irq_cascade)
393 setup_irq(pmac_irq_cascade, &gatwick_cascade_action); 393 setup_irq(pmac_irq_cascade, &gatwick_cascade_action);
394 394
395 printk(KERN_INFO "irq: System has %d possible interrupts\n", max_irqs); 395 printk(KERN_INFO "irq: System has %d possible interrupts\n", max_irqs);
@@ -444,7 +444,7 @@ static void __init pmac_pic_setup_mpic_nmi(struct mpic *mpic)
444 pswitch = of_find_node_by_name(NULL, "programmer-switch"); 444 pswitch = of_find_node_by_name(NULL, "programmer-switch");
445 if (pswitch) { 445 if (pswitch) {
446 nmi_irq = irq_of_parse_and_map(pswitch, 0); 446 nmi_irq = irq_of_parse_and_map(pswitch, 0);
447 if (nmi_irq != NO_IRQ) { 447 if (nmi_irq) {
448 mpic_irq_set_priority(nmi_irq, 9); 448 mpic_irq_set_priority(nmi_irq, 9);
449 setup_irq(nmi_irq, &xmon_action); 449 setup_irq(nmi_irq, &xmon_action);
450 } 450 }
diff --git a/arch/powerpc/platforms/powernv/opal-irqchip.c b/arch/powerpc/platforms/powernv/opal-irqchip.c
index ed8bba68a162..998316bf2dad 100644
--- a/arch/powerpc/platforms/powernv/opal-irqchip.c
+++ b/arch/powerpc/platforms/powernv/opal-irqchip.c
@@ -222,7 +222,7 @@ int __init opal_event_init(void)
222 /* Get hardware and virtual IRQ */ 222 /* Get hardware and virtual IRQ */
223 irq = be32_to_cpup(irqs); 223 irq = be32_to_cpup(irqs);
224 virq = irq_create_mapping(NULL, irq); 224 virq = irq_create_mapping(NULL, irq);
225 if (virq == NO_IRQ) { 225 if (!virq) {
226 pr_warn("Failed to map irq 0x%x\n", irq); 226 pr_warn("Failed to map irq 0x%x\n", irq);
227 continue; 227 continue;
228 } 228 }
@@ -260,7 +260,7 @@ machine_arch_initcall(powernv, opal_event_init);
260int opal_event_request(unsigned int opal_event_nr) 260int opal_event_request(unsigned int opal_event_nr)
261{ 261{
262 if (WARN_ON_ONCE(!opal_event_irqchip.domain)) 262 if (WARN_ON_ONCE(!opal_event_irqchip.domain))
263 return NO_IRQ; 263 return 0;
264 264
265 return irq_create_mapping(opal_event_irqchip.domain, opal_event_nr); 265 return irq_create_mapping(opal_event_irqchip.domain, opal_event_nr);
266} 266}
diff --git a/arch/powerpc/platforms/powernv/pci-cxl.c b/arch/powerpc/platforms/powernv/pci-cxl.c
index 1349a099c74c..94498a04558b 100644
--- a/arch/powerpc/platforms/powernv/pci-cxl.c
+++ b/arch/powerpc/platforms/powernv/pci-cxl.c
@@ -344,7 +344,7 @@ int pnv_cxl_cx4_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
344 return (hwirq ? hwirq : -ENOMEM); 344 return (hwirq ? hwirq : -ENOMEM);
345 345
346 virq = irq_create_mapping(NULL, hwirq); 346 virq = irq_create_mapping(NULL, hwirq);
347 if (virq == NO_IRQ) { 347 if (!virq) {
348 pr_warn("%s: Failed to map cxl mode MSI to linux irq\n", 348 pr_warn("%s: Failed to map cxl mode MSI to linux irq\n",
349 pci_name(pdev)); 349 pci_name(pdev));
350 return -ENOMEM; 350 return -ENOMEM;
@@ -374,7 +374,7 @@ void pnv_cxl_cx4_teardown_msi_irqs(struct pci_dev *pdev)
374 return; 374 return;
375 375
376 for_each_pci_msi_entry(entry, pdev) { 376 for_each_pci_msi_entry(entry, pdev) {
377 if (entry->irq == NO_IRQ) 377 if (!entry->irq)
378 continue; 378 continue;
379 hwirq = virq_to_hw(entry->irq); 379 hwirq = virq_to_hw(entry->irq);
380 irq_set_msi_desc(entry->irq, NULL); 380 irq_set_msi_desc(entry->irq, NULL);
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
index a21d831c1114..d6a4a61ede3d 100644
--- a/arch/powerpc/platforms/powernv/pci.c
+++ b/arch/powerpc/platforms/powernv/pci.c
@@ -186,7 +186,7 @@ int pnv_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
186 return -ENOSPC; 186 return -ENOSPC;
187 } 187 }
188 virq = irq_create_mapping(NULL, phb->msi_base + hwirq); 188 virq = irq_create_mapping(NULL, phb->msi_base + hwirq);
189 if (virq == NO_IRQ) { 189 if (!virq) {
190 pr_warn("%s: Failed to map MSI to linux irq\n", 190 pr_warn("%s: Failed to map MSI to linux irq\n",
191 pci_name(pdev)); 191 pci_name(pdev));
192 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1); 192 msi_bitmap_free_hwirqs(&phb->msi_bmp, hwirq, 1);
@@ -217,7 +217,7 @@ void pnv_teardown_msi_irqs(struct pci_dev *pdev)
217 return; 217 return;
218 218
219 for_each_pci_msi_entry(entry, pdev) { 219 for_each_pci_msi_entry(entry, pdev) {
220 if (entry->irq == NO_IRQ) 220 if (!entry->irq)
221 continue; 221 continue;
222 hwirq = virq_to_hw(entry->irq); 222 hwirq = virq_to_hw(entry->irq);
223 irq_set_msi_desc(entry->irq, NULL); 223 irq_set_msi_desc(entry->irq, NULL);
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index b831638e6f4a..98f8c3611133 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -192,7 +192,7 @@ static int ps3_virq_setup(enum ps3_cpu_binding cpu, unsigned long outlet,
192 192
193 *virq = irq_create_mapping(NULL, outlet); 193 *virq = irq_create_mapping(NULL, outlet);
194 194
195 if (*virq == NO_IRQ) { 195 if (!*virq) {
196 FAIL("%s:%d: irq_create_mapping failed: outlet %lu\n", 196 FAIL("%s:%d: irq_create_mapping failed: outlet %lu\n",
197 __func__, __LINE__, outlet); 197 __func__, __LINE__, outlet);
198 result = -ENOMEM; 198 result = -ENOMEM;
@@ -339,7 +339,7 @@ int ps3_event_receive_port_setup(enum ps3_cpu_binding cpu, unsigned int *virq)
339 if (result) { 339 if (result) {
340 FAIL("%s:%d: lv1_construct_event_receive_port failed: %s\n", 340 FAIL("%s:%d: lv1_construct_event_receive_port failed: %s\n",
341 __func__, __LINE__, ps3_result(result)); 341 __func__, __LINE__, ps3_result(result));
342 *virq = NO_IRQ; 342 *virq = 0;
343 return result; 343 return result;
344 } 344 }
345 345
@@ -418,7 +418,7 @@ int ps3_sb_event_receive_port_setup(struct ps3_system_bus_device *dev,
418 " failed: %s\n", __func__, __LINE__, 418 " failed: %s\n", __func__, __LINE__,
419 ps3_result(result)); 419 ps3_result(result));
420 ps3_event_receive_port_destroy(*virq); 420 ps3_event_receive_port_destroy(*virq);
421 *virq = NO_IRQ; 421 *virq = 0;
422 return result; 422 return result;
423 } 423 }
424 424
@@ -724,12 +724,12 @@ static unsigned int ps3_get_irq(void)
724 asm volatile("cntlzd %0,%1" : "=r" (plug) : "r" (x)); 724 asm volatile("cntlzd %0,%1" : "=r" (plug) : "r" (x));
725 plug &= 0x3f; 725 plug &= 0x3f;
726 726
727 if (unlikely(plug == NO_IRQ)) { 727 if (unlikely(!plug)) {
728 DBG("%s:%d: no plug found: thread_id %llu\n", __func__, 728 DBG("%s:%d: no plug found: thread_id %llu\n", __func__,
729 __LINE__, pd->thread_id); 729 __LINE__, pd->thread_id);
730 dump_bmp(&per_cpu(ps3_private, 0)); 730 dump_bmp(&per_cpu(ps3_private, 0));
731 dump_bmp(&per_cpu(ps3_private, 1)); 731 dump_bmp(&per_cpu(ps3_private, 1));
732 return NO_IRQ; 732 return 0;
733 } 733 }
734 734
735#if defined(DEBUG) 735#if defined(DEBUG)
diff --git a/arch/powerpc/platforms/ps3/smp.c b/arch/powerpc/platforms/ps3/smp.c
index 3c7707af3384..60154d08debf 100644
--- a/arch/powerpc/platforms/ps3/smp.c
+++ b/arch/powerpc/platforms/ps3/smp.c
@@ -91,7 +91,7 @@ static void __init ps3_smp_probe(void)
91 result = smp_request_message_ipi(virqs[i], i); 91 result = smp_request_message_ipi(virqs[i], i);
92 92
93 if (result) 93 if (result)
94 virqs[i] = NO_IRQ; 94 virqs[i] = 0;
95 else 95 else
96 ps3_register_ipi_irq(cpu, virqs[i]); 96 ps3_register_ipi_irq(cpu, virqs[i]);
97 } 97 }
@@ -112,7 +112,7 @@ void ps3_smp_cleanup_cpu(int cpu)
112 for (i = 0; i < MSG_COUNT; i++) { 112 for (i = 0; i < MSG_COUNT; i++) {
113 /* Can't call free_irq from interrupt context. */ 113 /* Can't call free_irq from interrupt context. */
114 ps3_event_receive_port_destroy(virqs[i]); 114 ps3_event_receive_port_destroy(virqs[i]);
115 virqs[i] = NO_IRQ; 115 virqs[i] = 0;
116 } 116 }
117 117
118 DBG(" <- %s:%d: (%d)\n", __func__, __LINE__, cpu); 118 DBG(" <- %s:%d: (%d)\n", __func__, __LINE__, cpu);
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index 492b2575e0d2..b54850845466 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -284,7 +284,7 @@ fail_alloc_2:
284fail_alloc_1: 284fail_alloc_1:
285 ps3_spe_irq_destroy(spu->irqs[0]); 285 ps3_spe_irq_destroy(spu->irqs[0]);
286fail_alloc_0: 286fail_alloc_0:
287 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = NO_IRQ; 287 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = 0;
288 return result; 288 return result;
289} 289}
290 290
@@ -334,7 +334,7 @@ static int ps3_destroy_spu(struct spu *spu)
334 ps3_spe_irq_destroy(spu->irqs[1]); 334 ps3_spe_irq_destroy(spu->irqs[1]);
335 ps3_spe_irq_destroy(spu->irqs[0]); 335 ps3_spe_irq_destroy(spu->irqs[0]);
336 336
337 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = NO_IRQ; 337 spu->irqs[0] = spu->irqs[1] = spu->irqs[2] = 0;
338 338
339 spu_unmap(spu); 339 spu_unmap(spu);
340 340
diff --git a/arch/powerpc/platforms/pseries/event_sources.c b/arch/powerpc/platforms/pseries/event_sources.c
index a6ddca833119..32187dc76730 100644
--- a/arch/powerpc/platforms/pseries/event_sources.c
+++ b/arch/powerpc/platforms/pseries/event_sources.c
@@ -34,7 +34,7 @@ void request_event_sources_irqs(struct device_node *np,
34 if (count > 15) 34 if (count > 15)
35 break; 35 break;
36 virqs[count] = irq_create_of_mapping(&oirq); 36 virqs[count] = irq_create_of_mapping(&oirq);
37 if (virqs[count] == NO_IRQ) { 37 if (!virqs[count]) {
38 pr_err("event-sources: Unable to allocate " 38 pr_err("event-sources: Unable to allocate "
39 "interrupt number for %s\n", 39 "interrupt number for %s\n",
40 np->full_name); 40 np->full_name);
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c
index 543a6386f3eb..326ef0dd6038 100644
--- a/arch/powerpc/platforms/pseries/msi.c
+++ b/arch/powerpc/platforms/pseries/msi.c
@@ -119,7 +119,7 @@ static void rtas_teardown_msi_irqs(struct pci_dev *pdev)
119 struct msi_desc *entry; 119 struct msi_desc *entry;
120 120
121 for_each_pci_msi_entry(entry, pdev) { 121 for_each_pci_msi_entry(entry, pdev) {
122 if (entry->irq == NO_IRQ) 122 if (!entry->irq)
123 continue; 123 continue;
124 124
125 irq_set_msi_desc(entry->irq, NULL); 125 irq_set_msi_desc(entry->irq, NULL);
@@ -471,7 +471,7 @@ again:
471 471
472 virq = irq_create_mapping(NULL, hwirq); 472 virq = irq_create_mapping(NULL, hwirq);
473 473
474 if (virq == NO_IRQ) { 474 if (!virq) {
475 pr_debug("rtas_msi: Failed mapping hwirq %d\n", hwirq); 475 pr_debug("rtas_msi: Failed mapping hwirq %d\n", hwirq);
476 return -ENOSPC; 476 return -ENOSPC;
477 } 477 }
@@ -490,7 +490,7 @@ again:
490static void rtas_msi_pci_irq_fixup(struct pci_dev *pdev) 490static void rtas_msi_pci_irq_fixup(struct pci_dev *pdev)
491{ 491{
492 /* No LSI -> leave MSIs (if any) configured */ 492 /* No LSI -> leave MSIs (if any) configured */
493 if (pdev->irq == NO_IRQ) { 493 if (!pdev->irq) {
494 dev_dbg(&pdev->dev, "rtas_msi: no LSI, nothing to do.\n"); 494 dev_dbg(&pdev->dev, "rtas_msi: no LSI, nothing to do.\n");
495 return; 495 return;
496 } 496 }
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 4ffcaa6f8670..776900043e2a 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -114,7 +114,7 @@ static void pseries_8259_cascade(struct irq_desc *desc)
114 struct irq_chip *chip = irq_desc_get_chip(desc); 114 struct irq_chip *chip = irq_desc_get_chip(desc);
115 unsigned int cascade_irq = i8259_irq(); 115 unsigned int cascade_irq = i8259_irq();
116 116
117 if (cascade_irq != NO_IRQ) 117 if (cascade_irq)
118 generic_handle_irq(cascade_irq); 118 generic_handle_irq(cascade_irq);
119 119
120 chip->irq_eoi(&desc->irq_data); 120 chip->irq_eoi(&desc->irq_data);
@@ -141,7 +141,7 @@ static void __init pseries_setup_i8259_cascade(void)
141 } 141 }
142 142
143 cascade = irq_of_parse_and_map(found, 0); 143 cascade = irq_of_parse_and_map(found, 0);
144 if (cascade == NO_IRQ) { 144 if (!cascade) {
145 printk(KERN_ERR "pic: failed to map cascade interrupt"); 145 printk(KERN_ERR "pic: failed to map cascade interrupt");
146 return; 146 return;
147 } 147 }
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c
index 9144204442eb..ada29eaed6e2 100644
--- a/arch/powerpc/sysdev/axonram.c
+++ b/arch/powerpc/sysdev/axonram.c
@@ -240,7 +240,7 @@ static int axon_ram_probe(struct platform_device *device)
240 device_add_disk(&device->dev, bank->disk); 240 device_add_disk(&device->dev, bank->disk);
241 241
242 bank->irq_id = irq_of_parse_and_map(device->dev.of_node, 0); 242 bank->irq_id = irq_of_parse_and_map(device->dev.of_node, 0);
243 if (bank->irq_id == NO_IRQ) { 243 if (!bank->irq_id) {
244 dev_err(&device->dev, "Cannot access ECC interrupt ID\n"); 244 dev_err(&device->dev, "Cannot access ECC interrupt ID\n");
245 rc = -EFAULT; 245 rc = -EFAULT;
246 goto failed; 246 goto failed;
@@ -250,7 +250,7 @@ static int axon_ram_probe(struct platform_device *device)
250 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); 250 AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device);
251 if (rc != 0) { 251 if (rc != 0) {
252 dev_err(&device->dev, "Cannot register ECC interrupt handler\n"); 252 dev_err(&device->dev, "Cannot register ECC interrupt handler\n");
253 bank->irq_id = NO_IRQ; 253 bank->irq_id = 0;
254 rc = -EFAULT; 254 rc = -EFAULT;
255 goto failed; 255 goto failed;
256 } 256 }
@@ -268,7 +268,7 @@ static int axon_ram_probe(struct platform_device *device)
268 268
269failed: 269failed:
270 if (bank != NULL) { 270 if (bank != NULL) {
271 if (bank->irq_id != NO_IRQ) 271 if (bank->irq_id)
272 free_irq(bank->irq_id, device); 272 free_irq(bank->irq_id, device);
273 if (bank->disk != NULL) { 273 if (bank->disk != NULL) {
274 if (bank->disk->major > 0) 274 if (bank->disk->major > 0)
diff --git a/arch/powerpc/sysdev/cpm1.c b/arch/powerpc/sysdev/cpm1.c
index 81d49476c47e..3c0eb9b25535 100644
--- a/arch/powerpc/sysdev/cpm1.c
+++ b/arch/powerpc/sysdev/cpm1.c
@@ -132,7 +132,7 @@ unsigned int cpm_pic_init(void)
132{ 132{
133 struct device_node *np = NULL; 133 struct device_node *np = NULL;
134 struct resource res; 134 struct resource res;
135 unsigned int sirq = NO_IRQ, hwirq, eirq; 135 unsigned int sirq = 0, hwirq, eirq;
136 int ret; 136 int ret;
137 137
138 pr_debug("cpm_pic_init\n"); 138 pr_debug("cpm_pic_init\n");
@@ -154,7 +154,7 @@ unsigned int cpm_pic_init(void)
154 goto end; 154 goto end;
155 155
156 sirq = irq_of_parse_and_map(np, 0); 156 sirq = irq_of_parse_and_map(np, 0);
157 if (sirq == NO_IRQ) 157 if (!sirq)
158 goto end; 158 goto end;
159 159
160 /* Initialize the CPM interrupt controller. */ 160 /* Initialize the CPM interrupt controller. */
@@ -168,7 +168,7 @@ unsigned int cpm_pic_init(void)
168 cpm_pic_host = irq_domain_add_linear(np, 64, &cpm_pic_host_ops, NULL); 168 cpm_pic_host = irq_domain_add_linear(np, 64, &cpm_pic_host_ops, NULL);
169 if (cpm_pic_host == NULL) { 169 if (cpm_pic_host == NULL) {
170 printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n"); 170 printk(KERN_ERR "CPM2 PIC: failed to allocate irq host!\n");
171 sirq = NO_IRQ; 171 sirq = 0;
172 goto end; 172 goto end;
173 } 173 }
174 174
@@ -182,7 +182,7 @@ unsigned int cpm_pic_init(void)
182 } 182 }
183 183
184 eirq = irq_of_parse_and_map(np, 0); 184 eirq = irq_of_parse_and_map(np, 0);
185 if (eirq == NO_IRQ) 185 if (!eirq)
186 goto end; 186 goto end;
187 187
188 if (setup_irq(eirq, &cpm_error_irqaction)) 188 if (setup_irq(eirq, &cpm_error_irqaction))
diff --git a/arch/powerpc/sysdev/ehv_pic.c b/arch/powerpc/sysdev/ehv_pic.c
index bffcc7a486a1..48866e6c1efb 100644
--- a/arch/powerpc/sysdev/ehv_pic.c
+++ b/arch/powerpc/sysdev/ehv_pic.c
@@ -155,7 +155,7 @@ static struct irq_chip ehv_pic_direct_eoi_irq_chip = {
155 .irq_set_type = ehv_pic_set_irq_type, 155 .irq_set_type = ehv_pic_set_irq_type,
156}; 156};
157 157
158/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ 158/* Return an interrupt vector or 0 if no interrupt is pending. */
159unsigned int ehv_pic_get_irq(void) 159unsigned int ehv_pic_get_irq(void)
160{ 160{
161 int irq; 161 int irq;
@@ -168,7 +168,7 @@ unsigned int ehv_pic_get_irq(void)
168 ev_int_iack(0, &irq); /* legacy mode */ 168 ev_int_iack(0, &irq); /* legacy mode */
169 169
170 if (irq == 0xFFFF) /* 0xFFFF --> no irq is pending */ 170 if (irq == 0xFFFF) /* 0xFFFF --> no irq is pending */
171 return NO_IRQ; 171 return 0;
172 172
173 /* 173 /*
174 * this will also setup revmap[] in the slow path for the first 174 * this will also setup revmap[] in the slow path for the first
diff --git a/arch/powerpc/sysdev/fsl_gtm.c b/arch/powerpc/sysdev/fsl_gtm.c
index 06ac3c61b3d0..a6f0b96ce2c9 100644
--- a/arch/powerpc/sysdev/fsl_gtm.c
+++ b/arch/powerpc/sysdev/fsl_gtm.c
@@ -406,7 +406,7 @@ static int __init fsl_gtm_init(void)
406 unsigned int irq; 406 unsigned int irq;
407 407
408 irq = irq_of_parse_and_map(np, i); 408 irq = irq_of_parse_and_map(np, i);
409 if (irq == NO_IRQ) { 409 if (!irq) {
410 pr_err("%s: not enough interrupts specified\n", 410 pr_err("%s: not enough interrupts specified\n",
411 np->full_name); 411 np->full_name);
412 goto err; 412 goto err;
diff --git a/arch/powerpc/sysdev/fsl_mpic_err.c b/arch/powerpc/sysdev/fsl_mpic_err.c
index b83f32562a37..488ec453038a 100644
--- a/arch/powerpc/sysdev/fsl_mpic_err.c
+++ b/arch/powerpc/sysdev/fsl_mpic_err.c
@@ -115,8 +115,8 @@ static irqreturn_t fsl_error_int_handler(int irq, void *data)
115 errint = __builtin_clz(eisr); 115 errint = __builtin_clz(eisr);
116 cascade_irq = irq_linear_revmap(mpic->irqhost, 116 cascade_irq = irq_linear_revmap(mpic->irqhost,
117 mpic->err_int_vecs[errint]); 117 mpic->err_int_vecs[errint]);
118 WARN_ON(cascade_irq == NO_IRQ); 118 WARN_ON(!cascade_irq);
119 if (cascade_irq != NO_IRQ) { 119 if (cascade_irq) {
120 generic_handle_irq(cascade_irq); 120 generic_handle_irq(cascade_irq);
121 } else { 121 } else {
122 eimr |= 1 << (31 - errint); 122 eimr |= 1 << (31 - errint);
@@ -134,7 +134,7 @@ void mpic_err_int_init(struct mpic *mpic, irq_hw_number_t irqnum)
134 int ret; 134 int ret;
135 135
136 virq = irq_create_mapping(mpic->irqhost, irqnum); 136 virq = irq_create_mapping(mpic->irqhost, irqnum);
137 if (virq == NO_IRQ) { 137 if (!virq) {
138 pr_err("Error interrupt setup failed\n"); 138 pr_err("Error interrupt setup failed\n");
139 return; 139 return;
140 } 140 }
diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
index 3a2be3676f43..8a244828782e 100644
--- a/arch/powerpc/sysdev/fsl_msi.c
+++ b/arch/powerpc/sysdev/fsl_msi.c
@@ -131,7 +131,7 @@ static void fsl_teardown_msi_irqs(struct pci_dev *pdev)
131 irq_hw_number_t hwirq; 131 irq_hw_number_t hwirq;
132 132
133 for_each_pci_msi_entry(entry, pdev) { 133 for_each_pci_msi_entry(entry, pdev) {
134 if (entry->irq == NO_IRQ) 134 if (!entry->irq)
135 continue; 135 continue;
136 hwirq = virq_to_hw(entry->irq); 136 hwirq = virq_to_hw(entry->irq);
137 msi_data = irq_get_chip_data(entry->irq); 137 msi_data = irq_get_chip_data(entry->irq);
@@ -250,7 +250,7 @@ static int fsl_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
250 250
251 virq = irq_create_mapping(msi_data->irqhost, hwirq); 251 virq = irq_create_mapping(msi_data->irqhost, hwirq);
252 252
253 if (virq == NO_IRQ) { 253 if (!virq) {
254 dev_err(&pdev->dev, "fail mapping hwirq %i\n", hwirq); 254 dev_err(&pdev->dev, "fail mapping hwirq %i\n", hwirq);
255 msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1); 255 msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1);
256 rc = -ENOSPC; 256 rc = -ENOSPC;
@@ -285,7 +285,7 @@ static irqreturn_t fsl_msi_cascade(int irq, void *data)
285 msir_index = cascade_data->index; 285 msir_index = cascade_data->index;
286 286
287 if (msir_index >= NR_MSI_REG_MAX) 287 if (msir_index >= NR_MSI_REG_MAX)
288 cascade_irq = NO_IRQ; 288 cascade_irq = 0;
289 289
290 switch (msi_data->feature & FSL_PIC_IP_MASK) { 290 switch (msi_data->feature & FSL_PIC_IP_MASK) {
291 case FSL_PIC_IP_MPIC: 291 case FSL_PIC_IP_MPIC:
@@ -315,7 +315,7 @@ static irqreturn_t fsl_msi_cascade(int irq, void *data)
315 cascade_irq = irq_linear_revmap(msi_data->irqhost, 315 cascade_irq = irq_linear_revmap(msi_data->irqhost,
316 msi_hwirq(msi_data, msir_index, 316 msi_hwirq(msi_data, msir_index,
317 intr_index + have_shift)); 317 intr_index + have_shift));
318 if (cascade_irq != NO_IRQ) { 318 if (cascade_irq) {
319 generic_handle_irq(cascade_irq); 319 generic_handle_irq(cascade_irq);
320 ret = IRQ_HANDLED; 320 ret = IRQ_HANDLED;
321 } 321 }
@@ -337,7 +337,7 @@ static int fsl_of_msi_remove(struct platform_device *ofdev)
337 if (msi->cascade_array[i]) { 337 if (msi->cascade_array[i]) {
338 virq = msi->cascade_array[i]->virq; 338 virq = msi->cascade_array[i]->virq;
339 339
340 BUG_ON(virq == NO_IRQ); 340 BUG_ON(!virq);
341 341
342 free_irq(virq, msi->cascade_array[i]); 342 free_irq(virq, msi->cascade_array[i]);
343 kfree(msi->cascade_array[i]); 343 kfree(msi->cascade_array[i]);
@@ -362,7 +362,7 @@ static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev,
362 int virt_msir, i, ret; 362 int virt_msir, i, ret;
363 363
364 virt_msir = irq_of_parse_and_map(dev->dev.of_node, irq_index); 364 virt_msir = irq_of_parse_and_map(dev->dev.of_node, irq_index);
365 if (virt_msir == NO_IRQ) { 365 if (!virt_msir) {
366 dev_err(&dev->dev, "%s: Cannot translate IRQ index %d\n", 366 dev_err(&dev->dev, "%s: Cannot translate IRQ index %d\n",
367 __func__, irq_index); 367 __func__, irq_index);
368 return 0; 368 return 0;
diff --git a/arch/powerpc/sysdev/ge/ge_pic.c b/arch/powerpc/sysdev/ge/ge_pic.c
index d57b77573068..02553a8ce191 100644
--- a/arch/powerpc/sysdev/ge/ge_pic.c
+++ b/arch/powerpc/sysdev/ge/ge_pic.c
@@ -102,7 +102,7 @@ static void gef_pic_cascade(struct irq_desc *desc)
102 */ 102 */
103 cascade_irq = gef_pic_get_irq(); 103 cascade_irq = gef_pic_get_irq();
104 104
105 if (cascade_irq != NO_IRQ) 105 if (cascade_irq)
106 generic_handle_irq(cascade_irq); 106 generic_handle_irq(cascade_irq);
107 107
108 chip->irq_eoi(&desc->irq_data); 108 chip->irq_eoi(&desc->irq_data);
@@ -206,7 +206,7 @@ void __init gef_pic_init(struct device_node *np)
206 206
207 /* Map controller */ 207 /* Map controller */
208 gef_pic_cascade_irq = irq_of_parse_and_map(np, 0); 208 gef_pic_cascade_irq = irq_of_parse_and_map(np, 0);
209 if (gef_pic_cascade_irq == NO_IRQ) { 209 if (!gef_pic_cascade_irq) {
210 printk(KERN_ERR "SBC610: failed to map cascade interrupt"); 210 printk(KERN_ERR "SBC610: failed to map cascade interrupt");
211 return; 211 return;
212 } 212 }
@@ -223,12 +223,12 @@ void __init gef_pic_init(struct device_node *np)
223 223
224/* 224/*
225 * This is called when we receive an interrupt with apparently comes from this 225 * This is called when we receive an interrupt with apparently comes from this
226 * chip - check, returning the highest interrupt generated or return NO_IRQ 226 * chip - check, returning the highest interrupt generated or return 0.
227 */ 227 */
228unsigned int gef_pic_get_irq(void) 228unsigned int gef_pic_get_irq(void)
229{ 229{
230 u32 cause, mask, active; 230 u32 cause, mask, active;
231 unsigned int virq = NO_IRQ; 231 unsigned int virq = 0;
232 int hwirq; 232 int hwirq;
233 233
234 cause = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_STATUS); 234 cause = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_STATUS);
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c
index aa2c186d3115..bafb014e1a7e 100644
--- a/arch/powerpc/sysdev/i8259.c
+++ b/arch/powerpc/sysdev/i8259.c
@@ -68,9 +68,9 @@ unsigned int i8259_irq(void)
68 if (!pci_intack) 68 if (!pci_intack)
69 outb(0x0B, 0x20); /* ISR register */ 69 outb(0x0B, 0x20); /* ISR register */
70 if(~inb(0x20) & 0x80) 70 if(~inb(0x20) & 0x80)
71 irq = NO_IRQ; 71 irq = 0;
72 } else if (irq == 0xff) 72 } else if (irq == 0xff)
73 irq = NO_IRQ; 73 irq = 0;
74 74
75 if (lock) 75 if (lock)
76 raw_spin_unlock(&i8259_lock); 76 raw_spin_unlock(&i8259_lock);
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index f76ee39cb337..f267ee0afc08 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -853,7 +853,7 @@ void ipic_clear_mcp_status(u32 mask)
853 ipic_write(primary_ipic->regs, IPIC_SERMR, mask); 853 ipic_write(primary_ipic->regs, IPIC_SERMR, mask);
854} 854}
855 855
856/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ 856/* Return an interrupt vector or 0 if no interrupt is pending. */
857unsigned int ipic_get_irq(void) 857unsigned int ipic_get_irq(void)
858{ 858{
859 int irq; 859 int irq;
@@ -864,7 +864,7 @@ unsigned int ipic_get_irq(void)
864 irq = ipic_read(primary_ipic->regs, IPIC_SIVCR) & IPIC_SIVCR_VECTOR_MASK; 864 irq = ipic_read(primary_ipic->regs, IPIC_SIVCR) & IPIC_SIVCR_VECTOR_MASK;
865 865
866 if (irq == 0) /* 0 --> no irq is pending */ 866 if (irq == 0) /* 0 --> no irq is pending */
867 return NO_IRQ; 867 return 0;
868 868
869 return irq_linear_revmap(primary_ipic->irqhost, irq); 869 return irq_linear_revmap(primary_ipic->irqhost, irq);
870} 870}
diff --git a/arch/powerpc/sysdev/mpc8xx_pic.c b/arch/powerpc/sysdev/mpc8xx_pic.c
index b7cf7abff2eb..3e828b20c21e 100644
--- a/arch/powerpc/sysdev/mpc8xx_pic.c
+++ b/arch/powerpc/sysdev/mpc8xx_pic.c
@@ -79,7 +79,7 @@ unsigned int mpc8xx_get_irq(void)
79 irq = in_be32(&siu_reg->sc_sivec) >> 26; 79 irq = in_be32(&siu_reg->sc_sivec) >> 26;
80 80
81 if (irq == PIC_VEC_SPURRIOUS) 81 if (irq == PIC_VEC_SPURRIOUS)
82 irq = NO_IRQ; 82 irq = 0;
83 83
84 return irq_linear_revmap(mpc8xx_pic_host, irq); 84 return irq_linear_revmap(mpc8xx_pic_host, irq);
85 85
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 7de45b2df366..4d48cecfedd1 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -1649,7 +1649,7 @@ void __init mpic_init(struct mpic *mpic)
1649 /* Check if this MPIC is chained from a parent interrupt controller */ 1649 /* Check if this MPIC is chained from a parent interrupt controller */
1650 if (mpic->flags & MPIC_SECONDARY) { 1650 if (mpic->flags & MPIC_SECONDARY) {
1651 int virq = irq_of_parse_and_map(mpic->node, 0); 1651 int virq = irq_of_parse_and_map(mpic->node, 0);
1652 if (virq != NO_IRQ) { 1652 if (virq) {
1653 printk(KERN_INFO "%s: hooking up to IRQ %d\n", 1653 printk(KERN_INFO "%s: hooking up to IRQ %d\n",
1654 mpic->node->full_name, virq); 1654 mpic->node->full_name, virq);
1655 irq_set_handler_data(virq, mpic); 1655 irq_set_handler_data(virq, mpic);
@@ -1778,13 +1778,13 @@ static unsigned int _mpic_get_one_irq(struct mpic *mpic, int reg)
1778 if (unlikely(src == mpic->spurious_vec)) { 1778 if (unlikely(src == mpic->spurious_vec)) {
1779 if (mpic->flags & MPIC_SPV_EOI) 1779 if (mpic->flags & MPIC_SPV_EOI)
1780 mpic_eoi(mpic); 1780 mpic_eoi(mpic);
1781 return NO_IRQ; 1781 return 0;
1782 } 1782 }
1783 if (unlikely(mpic->protected && test_bit(src, mpic->protected))) { 1783 if (unlikely(mpic->protected && test_bit(src, mpic->protected))) {
1784 printk_ratelimited(KERN_WARNING "%s: Got protected source %d !\n", 1784 printk_ratelimited(KERN_WARNING "%s: Got protected source %d !\n",
1785 mpic->name, (int)src); 1785 mpic->name, (int)src);
1786 mpic_eoi(mpic); 1786 mpic_eoi(mpic);
1787 return NO_IRQ; 1787 return 0;
1788 } 1788 }
1789 1789
1790 return irq_linear_revmap(mpic->irqhost, src); 1790 return irq_linear_revmap(mpic->irqhost, src);
@@ -1817,17 +1817,17 @@ unsigned int mpic_get_coreint_irq(void)
1817 if (unlikely(src == mpic->spurious_vec)) { 1817 if (unlikely(src == mpic->spurious_vec)) {
1818 if (mpic->flags & MPIC_SPV_EOI) 1818 if (mpic->flags & MPIC_SPV_EOI)
1819 mpic_eoi(mpic); 1819 mpic_eoi(mpic);
1820 return NO_IRQ; 1820 return 0;
1821 } 1821 }
1822 if (unlikely(mpic->protected && test_bit(src, mpic->protected))) { 1822 if (unlikely(mpic->protected && test_bit(src, mpic->protected))) {
1823 printk_ratelimited(KERN_WARNING "%s: Got protected source %d !\n", 1823 printk_ratelimited(KERN_WARNING "%s: Got protected source %d !\n",
1824 mpic->name, (int)src); 1824 mpic->name, (int)src);
1825 return NO_IRQ; 1825 return 0;
1826 } 1826 }
1827 1827
1828 return irq_linear_revmap(mpic->irqhost, src); 1828 return irq_linear_revmap(mpic->irqhost, src);
1829#else 1829#else
1830 return NO_IRQ; 1830 return 0;
1831#endif 1831#endif
1832} 1832}
1833 1833
@@ -1852,7 +1852,7 @@ void mpic_request_ipis(void)
1852 for (i = 0; i < 4; i++) { 1852 for (i = 0; i < 4; i++) {
1853 unsigned int vipi = irq_create_mapping(mpic->irqhost, 1853 unsigned int vipi = irq_create_mapping(mpic->irqhost,
1854 mpic->ipi_vecs[0] + i); 1854 mpic->ipi_vecs[0] + i);
1855 if (vipi == NO_IRQ) { 1855 if (!vipi) {
1856 printk(KERN_ERR "Failed to map %s\n", smp_ipi_name[i]); 1856 printk(KERN_ERR "Failed to map %s\n", smp_ipi_name[i]);
1857 continue; 1857 continue;
1858 } 1858 }
diff --git a/arch/powerpc/sysdev/mpic_msgr.c b/arch/powerpc/sysdev/mpic_msgr.c
index 3f165d972a0e..db2286be5d9a 100644
--- a/arch/powerpc/sysdev/mpic_msgr.c
+++ b/arch/powerpc/sysdev/mpic_msgr.c
@@ -238,7 +238,7 @@ static int mpic_msgr_probe(struct platform_device *dev)
238 238
239 if (receive_mask & (1 << i)) { 239 if (receive_mask & (1 << i)) {
240 msgr->irq = irq_of_parse_and_map(np, irq_index); 240 msgr->irq = irq_of_parse_and_map(np, irq_index);
241 if (msgr->irq == NO_IRQ) { 241 if (!msgr->irq) {
242 dev_err(&dev->dev, 242 dev_err(&dev->dev,
243 "Missing interrupt specifier"); 243 "Missing interrupt specifier");
244 kfree(msgr); 244 kfree(msgr);
@@ -246,7 +246,7 @@ static int mpic_msgr_probe(struct platform_device *dev)
246 } 246 }
247 irq_index += 1; 247 irq_index += 1;
248 } else { 248 } else {
249 msgr->irq = NO_IRQ; 249 msgr->irq = 0;
250 } 250 }
251 251
252 mpic_msgrs[reg_number] = msgr; 252 mpic_msgrs[reg_number] = msgr;
diff --git a/arch/powerpc/sysdev/mpic_u3msi.c b/arch/powerpc/sysdev/mpic_u3msi.c
index 2cbc7e29b85f..cfc1c57d760f 100644
--- a/arch/powerpc/sysdev/mpic_u3msi.c
+++ b/arch/powerpc/sysdev/mpic_u3msi.c
@@ -110,7 +110,7 @@ static void u3msi_teardown_msi_irqs(struct pci_dev *pdev)
110 irq_hw_number_t hwirq; 110 irq_hw_number_t hwirq;
111 111
112 for_each_pci_msi_entry(entry, pdev) { 112 for_each_pci_msi_entry(entry, pdev) {
113 if (entry->irq == NO_IRQ) 113 if (!entry->irq)
114 continue; 114 continue;
115 115
116 hwirq = virq_to_hw(entry->irq); 116 hwirq = virq_to_hw(entry->irq);
@@ -155,7 +155,7 @@ static int u3msi_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
155 msg.address_hi = addr >> 32; 155 msg.address_hi = addr >> 32;
156 156
157 virq = irq_create_mapping(msi_mpic->irqhost, hwirq); 157 virq = irq_create_mapping(msi_mpic->irqhost, hwirq);
158 if (virq == NO_IRQ) { 158 if (!virq) {
159 pr_debug("u3msi: failed mapping hwirq 0x%x\n", hwirq); 159 pr_debug("u3msi: failed mapping hwirq 0x%x\n", hwirq);
160 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, 1); 160 msi_bitmap_free_hwirqs(&msi_mpic->msi_bitmap, hwirq, 1);
161 return -ENOSPC; 161 return -ENOSPC;
diff --git a/arch/powerpc/sysdev/mv64x60_pic.c b/arch/powerpc/sysdev/mv64x60_pic.c
index 0f842dd16bcd..a79953deb489 100644
--- a/arch/powerpc/sysdev/mv64x60_pic.c
+++ b/arch/powerpc/sysdev/mv64x60_pic.c
@@ -272,7 +272,7 @@ unsigned int mv64x60_get_irq(void)
272 u32 cause; 272 u32 cause;
273 int level1; 273 int level1;
274 irq_hw_number_t hwirq; 274 irq_hw_number_t hwirq;
275 int virq = NO_IRQ; 275 int virq = 0;
276 276
277 cause = in_le32(mv64x60_irq_reg_base + MV64X60_IC_CPU0_SELECT_CAUSE); 277 cause = in_le32(mv64x60_irq_reg_base + MV64X60_IC_CPU0_SELECT_CAUSE);
278 if (cause & MV64X60_SELECT_CAUSE_HIGH) { 278 if (cause & MV64X60_SELECT_CAUSE_HIGH) {
diff --git a/arch/powerpc/sysdev/pmi.c b/arch/powerpc/sysdev/pmi.c
index 8a0b77a3ec0c..9ea6a221d9d5 100644
--- a/arch/powerpc/sysdev/pmi.c
+++ b/arch/powerpc/sysdev/pmi.c
@@ -158,7 +158,7 @@ static int pmi_of_probe(struct platform_device *dev)
158 data->dev = dev; 158 data->dev = dev;
159 159
160 data->irq = irq_of_parse_and_map(np, 0); 160 data->irq = irq_of_parse_and_map(np, 0);
161 if (data->irq == NO_IRQ) { 161 if (!data->irq) {
162 printk(KERN_ERR "pmi: invalid interrupt.\n"); 162 printk(KERN_ERR "pmi: invalid interrupt.\n");
163 rc = -EFAULT; 163 rc = -EFAULT;
164 goto error_cleanup_iomap; 164 goto error_cleanup_iomap;
diff --git a/arch/powerpc/sysdev/ppc4xx_hsta_msi.c b/arch/powerpc/sysdev/ppc4xx_hsta_msi.c
index 52a93dcae262..9926ad67af76 100644
--- a/arch/powerpc/sysdev/ppc4xx_hsta_msi.c
+++ b/arch/powerpc/sysdev/ppc4xx_hsta_msi.c
@@ -60,7 +60,7 @@ static int hsta_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
60 } 60 }
61 61
62 hwirq = ppc4xx_hsta_msi.irq_map[irq]; 62 hwirq = ppc4xx_hsta_msi.irq_map[irq];
63 if (hwirq == NO_IRQ) { 63 if (!hwirq) {
64 pr_err("%s: Failed mapping irq %d\n", __func__, irq); 64 pr_err("%s: Failed mapping irq %d\n", __func__, irq);
65 return -EINVAL; 65 return -EINVAL;
66 } 66 }
@@ -110,7 +110,7 @@ static void hsta_teardown_msi_irqs(struct pci_dev *dev)
110 int irq; 110 int irq;
111 111
112 for_each_pci_msi_entry(entry, dev) { 112 for_each_pci_msi_entry(entry, dev) {
113 if (entry->irq == NO_IRQ) 113 if (!entry->irq)
114 continue; 114 continue;
115 115
116 irq = hsta_find_hwirq_offset(entry->irq); 116 irq = hsta_find_hwirq_offset(entry->irq);
@@ -166,7 +166,7 @@ static int hsta_msi_probe(struct platform_device *pdev)
166 for (irq = 0; irq < irq_count; irq++) { 166 for (irq = 0; irq < irq_count; irq++) {
167 ppc4xx_hsta_msi.irq_map[irq] = 167 ppc4xx_hsta_msi.irq_map[irq] =
168 irq_of_parse_and_map(dev->of_node, irq); 168 irq_of_parse_and_map(dev->of_node, irq);
169 if (ppc4xx_hsta_msi.irq_map[irq] == NO_IRQ) { 169 if (!ppc4xx_hsta_msi.irq_map[irq]) {
170 dev_err(dev, "Unable to map IRQ\n"); 170 dev_err(dev, "Unable to map IRQ\n");
171 ret = -EINVAL; 171 ret = -EINVAL;
172 goto out2; 172 goto out2;
diff --git a/arch/powerpc/sysdev/ppc4xx_msi.c b/arch/powerpc/sysdev/ppc4xx_msi.c
index 8fb806135043..590dab4f47d6 100644
--- a/arch/powerpc/sysdev/ppc4xx_msi.c
+++ b/arch/powerpc/sysdev/ppc4xx_msi.c
@@ -102,7 +102,7 @@ static int ppc4xx_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
102 __func__); 102 __func__);
103 } 103 }
104 virq = irq_of_parse_and_map(msi_data->msi_dev, int_no); 104 virq = irq_of_parse_and_map(msi_data->msi_dev, int_no);
105 if (virq == NO_IRQ) { 105 if (!virq) {
106 dev_err(&dev->dev, "%s: fail mapping irq\n", __func__); 106 dev_err(&dev->dev, "%s: fail mapping irq\n", __func__);
107 msi_bitmap_free_hwirqs(&msi_data->bitmap, int_no, 1); 107 msi_bitmap_free_hwirqs(&msi_data->bitmap, int_no, 1);
108 return -ENOSPC; 108 return -ENOSPC;
@@ -129,7 +129,7 @@ void ppc4xx_teardown_msi_irqs(struct pci_dev *dev)
129 dev_dbg(&dev->dev, "PCIE-MSI: tearing down msi irqs\n"); 129 dev_dbg(&dev->dev, "PCIE-MSI: tearing down msi irqs\n");
130 130
131 for_each_pci_msi_entry(entry, dev) { 131 for_each_pci_msi_entry(entry, dev) {
132 if (entry->irq == NO_IRQ) 132 if (!entry->irq)
133 continue; 133 continue;
134 hwirq = virq_to_hw(entry->irq); 134 hwirq = virq_to_hw(entry->irq);
135 irq_set_msi_desc(entry->irq, NULL); 135 irq_set_msi_desc(entry->irq, NULL);
@@ -201,7 +201,7 @@ static int ppc4xx_of_msi_remove(struct platform_device *dev)
201 201
202 for (i = 0; i < msi_irqs; i++) { 202 for (i = 0; i < msi_irqs; i++) {
203 virq = msi->msi_virqs[i]; 203 virq = msi->msi_virqs[i];
204 if (virq != NO_IRQ) 204 if (virq)
205 irq_dispose_mapping(virq); 205 irq_dispose_mapping(virq);
206 } 206 }
207 207
diff --git a/arch/powerpc/sysdev/ppc4xx_soc.c b/arch/powerpc/sysdev/ppc4xx_soc.c
index 5c77c9ba33aa..d41134d2f786 100644
--- a/arch/powerpc/sysdev/ppc4xx_soc.c
+++ b/arch/powerpc/sysdev/ppc4xx_soc.c
@@ -109,7 +109,7 @@ static int __init ppc4xx_l2c_probe(void)
109 109
110 /* Get and map irq number from device tree */ 110 /* Get and map irq number from device tree */
111 irq = irq_of_parse_and_map(np, 0); 111 irq = irq_of_parse_and_map(np, 0);
112 if (irq == NO_IRQ) { 112 if (!irq) {
113 printk(KERN_ERR "irq_of_parse_and_map failed\n"); 113 printk(KERN_ERR "irq_of_parse_and_map failed\n");
114 of_node_put(np); 114 of_node_put(np);
115 return -ENODEV; 115 return -ENODEV;
diff --git a/arch/powerpc/sysdev/tsi108_pci.c b/arch/powerpc/sysdev/tsi108_pci.c
index 379de955aae3..57c971b7839c 100644
--- a/arch/powerpc/sysdev/tsi108_pci.c
+++ b/arch/powerpc/sysdev/tsi108_pci.c
@@ -433,7 +433,7 @@ void tsi108_irq_cascade(struct irq_desc *desc)
433 struct irq_chip *chip = irq_desc_get_chip(desc); 433 struct irq_chip *chip = irq_desc_get_chip(desc);
434 unsigned int cascade_irq = get_pci_source(); 434 unsigned int cascade_irq = get_pci_source();
435 435
436 if (cascade_irq != NO_IRQ) 436 if (cascade_irq)
437 generic_handle_irq(cascade_irq); 437 generic_handle_irq(cascade_irq);
438 438
439 chip->irq_eoi(&desc->irq_data); 439 chip->irq_eoi(&desc->irq_data);
diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c
index 6893d8f236df..a00949f3e378 100644
--- a/arch/powerpc/sysdev/uic.c
+++ b/arch/powerpc/sysdev/uic.c
@@ -319,7 +319,7 @@ void __init uic_init_tree(void)
319 } 319 }
320} 320}
321 321
322/* Return an interrupt vector or NO_IRQ if no interrupt is pending. */ 322/* Return an interrupt vector or 0 if no interrupt is pending. */
323unsigned int uic_get_irq(void) 323unsigned int uic_get_irq(void)
324{ 324{
325 u32 msr; 325 u32 msr;
diff --git a/arch/powerpc/sysdev/xics/icp-hv.c b/arch/powerpc/sysdev/xics/icp-hv.c
index c1917cf67c3d..e7fa26c4ff73 100644
--- a/arch/powerpc/sysdev/xics/icp-hv.c
+++ b/arch/powerpc/sysdev/xics/icp-hv.c
@@ -112,10 +112,10 @@ static unsigned int icp_hv_get_irq(void)
112 unsigned int irq; 112 unsigned int irq;
113 113
114 if (vec == XICS_IRQ_SPURIOUS) 114 if (vec == XICS_IRQ_SPURIOUS)
115 return NO_IRQ; 115 return 0;
116 116
117 irq = irq_find_mapping(xics_host, vec); 117 irq = irq_find_mapping(xics_host, vec);
118 if (likely(irq != NO_IRQ)) { 118 if (likely(irq)) {
119 xics_push_cppr(vec); 119 xics_push_cppr(vec);
120 return irq; 120 return irq;
121 } 121 }
@@ -126,7 +126,7 @@ static unsigned int icp_hv_get_irq(void)
126 /* We might learn about it later, so EOI it */ 126 /* We might learn about it later, so EOI it */
127 icp_hv_set_xirr(xirr); 127 icp_hv_set_xirr(xirr);
128 128
129 return NO_IRQ; 129 return 0;
130} 130}
131 131
132static void icp_hv_set_cpu_priority(unsigned char cppr) 132static void icp_hv_set_cpu_priority(unsigned char cppr)
diff --git a/arch/powerpc/sysdev/xics/icp-native.c b/arch/powerpc/sysdev/xics/icp-native.c
index afdf62f2a695..8a6a043e239b 100644
--- a/arch/powerpc/sysdev/xics/icp-native.c
+++ b/arch/powerpc/sysdev/xics/icp-native.c
@@ -124,10 +124,10 @@ static unsigned int icp_native_get_irq(void)
124 unsigned int irq; 124 unsigned int irq;
125 125
126 if (vec == XICS_IRQ_SPURIOUS) 126 if (vec == XICS_IRQ_SPURIOUS)
127 return NO_IRQ; 127 return 0;
128 128
129 irq = irq_find_mapping(xics_host, vec); 129 irq = irq_find_mapping(xics_host, vec);
130 if (likely(irq != NO_IRQ)) { 130 if (likely(irq)) {
131 xics_push_cppr(vec); 131 xics_push_cppr(vec);
132 return irq; 132 return irq;
133 } 133 }
@@ -138,7 +138,7 @@ static unsigned int icp_native_get_irq(void)
138 /* We might learn about it later, so EOI it */ 138 /* We might learn about it later, so EOI it */
139 icp_native_set_xirr(xirr); 139 icp_native_set_xirr(xirr);
140 140
141 return NO_IRQ; 141 return 0;
142} 142}
143 143
144#ifdef CONFIG_SMP 144#ifdef CONFIG_SMP
diff --git a/arch/powerpc/sysdev/xics/icp-opal.c b/arch/powerpc/sysdev/xics/icp-opal.c
index 57d72f10a97f..7357cfddb040 100644
--- a/arch/powerpc/sysdev/xics/icp-opal.c
+++ b/arch/powerpc/sysdev/xics/icp-opal.c
@@ -51,14 +51,14 @@ static unsigned int icp_opal_get_irq(void)
51 51
52 rc = opal_int_get_xirr(&xirr, false); 52 rc = opal_int_get_xirr(&xirr, false);
53 if (rc < 0) 53 if (rc < 0)
54 return NO_IRQ; 54 return 0;
55 xirr = be32_to_cpu(xirr); 55 xirr = be32_to_cpu(xirr);
56 vec = xirr & 0x00ffffff; 56 vec = xirr & 0x00ffffff;
57 if (vec == XICS_IRQ_SPURIOUS) 57 if (vec == XICS_IRQ_SPURIOUS)
58 return NO_IRQ; 58 return 0;
59 59
60 irq = irq_find_mapping(xics_host, vec); 60 irq = irq_find_mapping(xics_host, vec);
61 if (likely(irq != NO_IRQ)) { 61 if (likely(irq)) {
62 xics_push_cppr(vec); 62 xics_push_cppr(vec);
63 return irq; 63 return irq;
64 } 64 }
@@ -69,7 +69,7 @@ static unsigned int icp_opal_get_irq(void)
69 /* We might learn about it later, so EOI it */ 69 /* We might learn about it later, so EOI it */
70 opal_int_eoi(xirr); 70 opal_int_eoi(xirr);
71 71
72 return NO_IRQ; 72 return 0;
73} 73}
74 74
75static void icp_opal_set_cpu_priority(unsigned char cppr) 75static void icp_opal_set_cpu_priority(unsigned char cppr)
diff --git a/arch/powerpc/sysdev/xics/xics-common.c b/arch/powerpc/sysdev/xics/xics-common.c
index 9d530f479588..69d858e51ac7 100644
--- a/arch/powerpc/sysdev/xics/xics-common.c
+++ b/arch/powerpc/sysdev/xics/xics-common.c
@@ -131,7 +131,7 @@ static void xics_request_ipi(void)
131 unsigned int ipi; 131 unsigned int ipi;
132 132
133 ipi = irq_create_mapping(xics_host, XICS_IPI); 133 ipi = irq_create_mapping(xics_host, XICS_IPI);
134 BUG_ON(ipi == NO_IRQ); 134 BUG_ON(!ipi);
135 135
136 /* 136 /*
137 * IPIs are marked IRQF_PERCPU. The handler was set in map. 137 * IPIs are marked IRQF_PERCPU. The handler was set in map.
diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
index b6819f0fc608..3f041b187033 100644
--- a/drivers/macintosh/macio_asic.c
+++ b/drivers/macintosh/macio_asic.c
@@ -236,7 +236,7 @@ static void macio_create_fixup_irq(struct macio_dev *dev, int index,
236 unsigned int irq; 236 unsigned int irq;
237 237
238 irq = irq_create_mapping(NULL, line); 238 irq = irq_create_mapping(NULL, line);
239 if (irq != NO_IRQ) { 239 if (!irq) {
240 dev->interrupt[index].start = irq; 240 dev->interrupt[index].start = irq;
241 dev->interrupt[index].flags = IORESOURCE_IRQ; 241 dev->interrupt[index].flags = IORESOURCE_IRQ;
242 dev->interrupt[index].name = dev_name(&dev->ofdev.dev); 242 dev->interrupt[index].name = dev_name(&dev->ofdev.dev);
@@ -299,7 +299,7 @@ static void macio_setup_interrupts(struct macio_dev *dev)
299 break; 299 break;
300 res = &dev->interrupt[j]; 300 res = &dev->interrupt[j];
301 irq = irq_of_parse_and_map(np, i++); 301 irq = irq_of_parse_and_map(np, i++);
302 if (irq == NO_IRQ) 302 if (!irq)
303 break; 303 break;
304 res->start = irq; 304 res->start = irq;
305 res->flags = IORESOURCE_IRQ; 305 res->flags = IORESOURCE_IRQ;
diff --git a/drivers/macintosh/rack-meter.c b/drivers/macintosh/rack-meter.c
index 465c52219639..775527135b93 100644
--- a/drivers/macintosh/rack-meter.c
+++ b/drivers/macintosh/rack-meter.c
@@ -427,7 +427,7 @@ static int rackmeter_probe(struct macio_dev* mdev,
427 rm->irq = macio_irq(mdev, 1); 427 rm->irq = macio_irq(mdev, 1);
428#else 428#else
429 rm->irq = irq_of_parse_and_map(i2s, 1); 429 rm->irq = irq_of_parse_and_map(i2s, 1);
430 if (rm->irq == NO_IRQ || 430 if (!rm->irq ||
431 of_address_to_resource(i2s, 0, &ri2s) || 431 of_address_to_resource(i2s, 0, &ri2s) ||
432 of_address_to_resource(i2s, 1, &rdma)) { 432 of_address_to_resource(i2s, 1, &rdma)) {
433 printk(KERN_ERR 433 printk(KERN_ERR
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c
index d6f72c826c1c..08edb2c25b60 100644
--- a/drivers/macintosh/smu.c
+++ b/drivers/macintosh/smu.c
@@ -279,7 +279,7 @@ int smu_queue_cmd(struct smu_cmd *cmd)
279 spin_unlock_irqrestore(&smu->lock, flags); 279 spin_unlock_irqrestore(&smu->lock, flags);
280 280
281 /* Workaround for early calls when irq isn't available */ 281 /* Workaround for early calls when irq isn't available */
282 if (!smu_irq_inited || smu->db_irq == NO_IRQ) 282 if (!smu_irq_inited || !smu->db_irq)
283 smu_spinwait_cmd(cmd); 283 smu_spinwait_cmd(cmd);
284 284
285 return 0; 285 return 0;
@@ -498,8 +498,8 @@ int __init smu_init (void)
498 INIT_LIST_HEAD(&smu->cmd_list); 498 INIT_LIST_HEAD(&smu->cmd_list);
499 INIT_LIST_HEAD(&smu->cmd_i2c_list); 499 INIT_LIST_HEAD(&smu->cmd_i2c_list);
500 smu->of_node = np; 500 smu->of_node = np;
501 smu->db_irq = NO_IRQ; 501 smu->db_irq = 0;
502 smu->msg_irq = NO_IRQ; 502 smu->msg_irq = 0;
503 503
504 /* smu_cmdbuf_abs is in the low 2G of RAM, can be converted to a 504 /* smu_cmdbuf_abs is in the low 2G of RAM, can be converted to a
505 * 32 bits value safely 505 * 32 bits value safely
@@ -587,13 +587,13 @@ static int smu_late_init(void)
587 587
588 if (smu->db_node) { 588 if (smu->db_node) {
589 smu->db_irq = irq_of_parse_and_map(smu->db_node, 0); 589 smu->db_irq = irq_of_parse_and_map(smu->db_node, 0);
590 if (smu->db_irq == NO_IRQ) 590 if (!smu->db_irq)
591 printk(KERN_ERR "smu: failed to map irq for node %s\n", 591 printk(KERN_ERR "smu: failed to map irq for node %s\n",
592 smu->db_node->full_name); 592 smu->db_node->full_name);
593 } 593 }
594 if (smu->msg_node) { 594 if (smu->msg_node) {
595 smu->msg_irq = irq_of_parse_and_map(smu->msg_node, 0); 595 smu->msg_irq = irq_of_parse_and_map(smu->msg_node, 0);
596 if (smu->msg_irq == NO_IRQ) 596 if (!smu->msg_irq)
597 printk(KERN_ERR "smu: failed to map irq for node %s\n", 597 printk(KERN_ERR "smu: failed to map irq for node %s\n",
598 smu->msg_node->full_name); 598 smu->msg_node->full_name);
599 } 599 }
@@ -602,23 +602,23 @@ static int smu_late_init(void)
602 * Try to request the interrupts 602 * Try to request the interrupts
603 */ 603 */
604 604
605 if (smu->db_irq != NO_IRQ) { 605 if (smu->db_irq) {
606 if (request_irq(smu->db_irq, smu_db_intr, 606 if (request_irq(smu->db_irq, smu_db_intr,
607 IRQF_SHARED, "SMU doorbell", smu) < 0) { 607 IRQF_SHARED, "SMU doorbell", smu) < 0) {
608 printk(KERN_WARNING "SMU: can't " 608 printk(KERN_WARNING "SMU: can't "
609 "request interrupt %d\n", 609 "request interrupt %d\n",
610 smu->db_irq); 610 smu->db_irq);
611 smu->db_irq = NO_IRQ; 611 smu->db_irq = 0;
612 } 612 }
613 } 613 }
614 614
615 if (smu->msg_irq != NO_IRQ) { 615 if (smu->msg_irq) {
616 if (request_irq(smu->msg_irq, smu_msg_intr, 616 if (request_irq(smu->msg_irq, smu_msg_intr,
617 IRQF_SHARED, "SMU message", smu) < 0) { 617 IRQF_SHARED, "SMU message", smu) < 0) {
618 printk(KERN_WARNING "SMU: can't " 618 printk(KERN_WARNING "SMU: can't "
619 "request interrupt %d\n", 619 "request interrupt %d\n",
620 smu->msg_irq); 620 smu->msg_irq);
621 smu->msg_irq = NO_IRQ; 621 smu->msg_irq = 0;
622 } 622 }
623 } 623 }
624 624
diff --git a/drivers/macintosh/via-cuda.c b/drivers/macintosh/via-cuda.c
index bad18130f125..2088e23a8002 100644
--- a/drivers/macintosh/via-cuda.c
+++ b/drivers/macintosh/via-cuda.c
@@ -209,7 +209,7 @@ static int __init via_cuda_start(void)
209 cuda_irq = IRQ_MAC_ADB; 209 cuda_irq = IRQ_MAC_ADB;
210#else 210#else
211 cuda_irq = irq_of_parse_and_map(vias, 0); 211 cuda_irq = irq_of_parse_and_map(vias, 0);
212 if (cuda_irq == NO_IRQ) { 212 if (!cuda_irq) {
213 printk(KERN_ERR "via-cuda: can't map interrupts for %s\n", 213 printk(KERN_ERR "via-cuda: can't map interrupts for %s\n",
214 vias->full_name); 214 vias->full_name);
215 return -ENODEV; 215 return -ENODEV;
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index f8b6d1403c16..91081dcdc272 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -145,7 +145,7 @@ static int pmu_fully_inited;
145static int pmu_has_adb; 145static int pmu_has_adb;
146static struct device_node *gpio_node; 146static struct device_node *gpio_node;
147static unsigned char __iomem *gpio_reg; 147static unsigned char __iomem *gpio_reg;
148static int gpio_irq = NO_IRQ; 148static int gpio_irq = 0;
149static int gpio_irq_enabled = -1; 149static int gpio_irq_enabled = -1;
150static volatile int pmu_suspended; 150static volatile int pmu_suspended;
151static spinlock_t pmu_lock; 151static spinlock_t pmu_lock;
@@ -402,7 +402,7 @@ static int __init via_pmu_start(void)
402 batt_req.complete = 1; 402 batt_req.complete = 1;
403 403
404 irq = irq_of_parse_and_map(vias, 0); 404 irq = irq_of_parse_and_map(vias, 0);
405 if (irq == NO_IRQ) { 405 if (!irq) {
406 printk(KERN_ERR "via-pmu: can't map interrupt\n"); 406 printk(KERN_ERR "via-pmu: can't map interrupt\n");
407 return -ENODEV; 407 return -ENODEV;
408 } 408 }
@@ -424,7 +424,7 @@ static int __init via_pmu_start(void)
424 if (gpio_node) 424 if (gpio_node)
425 gpio_irq = irq_of_parse_and_map(gpio_node, 0); 425 gpio_irq = irq_of_parse_and_map(gpio_node, 0);
426 426
427 if (gpio_irq != NO_IRQ) { 427 if (gpio_irq) {
428 if (request_irq(gpio_irq, gpio1_interrupt, 428 if (request_irq(gpio_irq, gpio1_interrupt,
429 IRQF_NO_SUSPEND, "GPIO1 ADB", 429 IRQF_NO_SUSPEND, "GPIO1 ADB",
430 (void *)0)) 430 (void *)0))
diff --git a/drivers/ps3/ps3-vuart.c b/drivers/ps3/ps3-vuart.c
index 632701a1d993..b7f300b79ffd 100644
--- a/drivers/ps3/ps3-vuart.c
+++ b/drivers/ps3/ps3-vuart.c
@@ -958,7 +958,7 @@ static int ps3_vuart_bus_interrupt_get(void)
958 958
959fail_request_irq: 959fail_request_irq:
960 ps3_vuart_irq_destroy(vuart_bus_priv.virq); 960 ps3_vuart_irq_destroy(vuart_bus_priv.virq);
961 vuart_bus_priv.virq = NO_IRQ; 961 vuart_bus_priv.virq = 0;
962fail_alloc_irq: 962fail_alloc_irq:
963 kfree(vuart_bus_priv.bmp); 963 kfree(vuart_bus_priv.bmp);
964 vuart_bus_priv.bmp = NULL; 964 vuart_bus_priv.bmp = NULL;
@@ -982,7 +982,7 @@ static int ps3_vuart_bus_interrupt_put(void)
982 free_irq(vuart_bus_priv.virq, &vuart_bus_priv); 982 free_irq(vuart_bus_priv.virq, &vuart_bus_priv);
983 983
984 ps3_vuart_irq_destroy(vuart_bus_priv.virq); 984 ps3_vuart_irq_destroy(vuart_bus_priv.virq);
985 vuart_bus_priv.virq = NO_IRQ; 985 vuart_bus_priv.virq = 0;
986 986
987 kfree(vuart_bus_priv.bmp); 987 kfree(vuart_bus_priv.bmp);
988 vuart_bus_priv.bmp = NULL; 988 vuart_bus_priv.bmp = NULL;
diff --git a/sound/aoa/core/gpio-feature.c b/sound/aoa/core/gpio-feature.c
index f34153962d07..71960089e207 100644
--- a/sound/aoa/core/gpio-feature.c
+++ b/sound/aoa/core/gpio-feature.c
@@ -118,7 +118,7 @@ static void get_irq(struct device_node * np, int *irqptr)
118 if (np) 118 if (np)
119 *irqptr = irq_of_parse_and_map(np, 0); 119 *irqptr = irq_of_parse_and_map(np, 0);
120 else 120 else
121 *irqptr = NO_IRQ; 121 *irqptr = 0;
122} 122}
123 123
124/* 0x4 is outenable, 0x1 is out, thus 4 or 5 */ 124/* 0x4 is outenable, 0x1 is out, thus 4 or 5 */
@@ -336,7 +336,7 @@ static int ftr_set_notify(struct gpio_runtime *rt,
336 return -EINVAL; 336 return -EINVAL;
337 } 337 }
338 338
339 if (irq == NO_IRQ) 339 if (!irq)
340 return -ENODEV; 340 return -ENODEV;
341 341
342 mutex_lock(&notif->mutex); 342 mutex_lock(&notif->mutex);
diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
index c8fafba218a5..58ee8089bbf9 100644
--- a/sound/ppc/tumbler.c
+++ b/sound/ppc/tumbler.c
@@ -1303,19 +1303,19 @@ static int tumbler_init(struct snd_pmac *chip)
1303 &mix->line_mute, 1); 1303 &mix->line_mute, 1);
1304 irq = tumbler_find_device("headphone-detect", 1304 irq = tumbler_find_device("headphone-detect",
1305 NULL, &mix->hp_detect, 0); 1305 NULL, &mix->hp_detect, 0);
1306 if (irq <= NO_IRQ) 1306 if (irq <= 0)
1307 irq = tumbler_find_device("headphone-detect", 1307 irq = tumbler_find_device("headphone-detect",
1308 NULL, &mix->hp_detect, 1); 1308 NULL, &mix->hp_detect, 1);
1309 if (irq <= NO_IRQ) 1309 if (irq <= 0)
1310 irq = tumbler_find_device("keywest-gpio15", 1310 irq = tumbler_find_device("keywest-gpio15",
1311 NULL, &mix->hp_detect, 1); 1311 NULL, &mix->hp_detect, 1);
1312 mix->headphone_irq = irq; 1312 mix->headphone_irq = irq;
1313 irq = tumbler_find_device("line-output-detect", 1313 irq = tumbler_find_device("line-output-detect",
1314 NULL, &mix->line_detect, 0); 1314 NULL, &mix->line_detect, 0);
1315 if (irq <= NO_IRQ) 1315 if (irq <= 0)
1316 irq = tumbler_find_device("line-output-detect", 1316 irq = tumbler_find_device("line-output-detect",
1317 NULL, &mix->line_detect, 1); 1317 NULL, &mix->line_detect, 1);
1318 if (IS_G4DA && irq <= NO_IRQ) 1318 if (IS_G4DA && irq <= 0)
1319 irq = tumbler_find_device("keywest-gpio16", 1319 irq = tumbler_find_device("keywest-gpio16",
1320 NULL, &mix->line_detect, 1); 1320 NULL, &mix->line_detect, 1);
1321 mix->lineout_irq = irq; 1321 mix->lineout_irq = irq;