diff options
-rw-r--r-- | arch/mips/sgi-ip32/ip32-irq.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c index 22a6df94b4a1..de01c9815bdd 100644 --- a/arch/mips/sgi-ip32/ip32-irq.c +++ b/arch/mips/sgi-ip32/ip32-irq.c | |||
@@ -507,13 +507,14 @@ static void ip32_irq0(struct pt_regs *regs) | |||
507 | int irq = 0; | 507 | int irq = 0; |
508 | 508 | ||
509 | crime_int = crime->istat & crime_mask; | 509 | crime_int = crime->istat & crime_mask; |
510 | irq = ffs(crime_int); | 510 | irq = __ffs(crime_int); |
511 | crime_int = 1 << (irq - 1); | 511 | crime_int = 1 << irq; |
512 | 512 | ||
513 | if (crime_int & CRIME_MACEISA_INT_MASK) { | 513 | if (crime_int & CRIME_MACEISA_INT_MASK) { |
514 | unsigned long mace_int = mace->perif.ctrl.istat; | 514 | unsigned long mace_int = mace->perif.ctrl.istat; |
515 | irq = ffs(mace_int & maceisa_mask) + 32; | 515 | irq = __ffs(mace_int & maceisa_mask) + 32; |
516 | } | 516 | } |
517 | irq++; | ||
517 | DBG("*irq %u*\n", irq); | 518 | DBG("*irq %u*\n", irq); |
518 | do_IRQ(irq, regs); | 519 | do_IRQ(irq, regs); |
519 | } | 520 | } |