|
@@ -649,9 +649,13 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
|
|
int bit_idx = __ffs(pending_bits);
|
|
int bit_idx = __ffs(pending_bits);
|
|
int port = (word_idx * BITS_PER_LONG) + bit_idx;
|
|
int port = (word_idx * BITS_PER_LONG) + bit_idx;
|
|
int irq = evtchn_to_irq[port];
|
|
int irq = evtchn_to_irq[port];
|
|
|
|
+ struct irq_desc *desc;
|
|
|
|
|
|
- if (irq != -1)
|
|
|
|
- handle_irq(irq, regs);
|
|
|
|
|
|
+ if (irq != -1) {
|
|
|
|
+ desc = irq_to_desc(irq);
|
|
|
|
+ if (desc)
|
|
|
|
+ generic_handle_irq_desc(irq, desc);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|