IB/hfi1: Return correct value in general interrupt handler

The general interrupt handler returns IRQ_HANDLED whether an IRQ
was handled or not.
Determine if an IRQ was handled and return the correct value.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Kamenee Arumugam <kamenee.arumugam@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
Kamenee Arumugam 2017-09-26 06:06:15 -07:00 committed by Doug Ledford
parent 753b19afb1
commit 09592af5fd

View file

@ -8240,6 +8240,7 @@ static irqreturn_t general_interrupt(int irq, void *data)
u64 regs[CCE_NUM_INT_CSRS]; u64 regs[CCE_NUM_INT_CSRS];
u32 bit; u32 bit;
int i; int i;
irqreturn_t handled = IRQ_NONE;
this_cpu_inc(*dd->int_counter); this_cpu_inc(*dd->int_counter);
@ -8260,9 +8261,10 @@ static irqreturn_t general_interrupt(int irq, void *data)
for_each_set_bit(bit, (unsigned long *)&regs[0], for_each_set_bit(bit, (unsigned long *)&regs[0],
CCE_NUM_INT_CSRS * 64) { CCE_NUM_INT_CSRS * 64) {
is_interrupt(dd, bit); is_interrupt(dd, bit);
handled = IRQ_HANDLED;
} }
return IRQ_HANDLED; return handled;
} }
static irqreturn_t sdma_interrupt(int irq, void *data) static irqreturn_t sdma_interrupt(int irq, void *data)