aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev
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 /arch/powerpc/sysdev
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>
Diffstat (limited to 'arch/powerpc/sysdev')
-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
24 files changed, 61 insertions, 61 deletions
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.