irq_set_percpu_devid(irq);
irq_set_chip_and_handler(irq, &gic_chip,
handle_percpu_devid_irq);
- set_irq_flags(irq, IRQF_VALID | IRQF_NOAUTOEN);
+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
} else {
irq_set_chip_and_handler(irq, &gic_chip,
handle_fasteoi_irq);
#endif
}
#ifdef CONFIG_ARM
-#define IRQ_EVTCHN_CALLBACK 63
+#define IRQ_EVTCHN_CALLBACK 31
irqreturn_t xen_arm_callback(int irq, void *arg)
{
__xen_evtchn_do_upcall();
{
int rc;
xen_init_IRQ();
- rc = request_irq(IRQ_EVTCHN_CALLBACK, xen_arm_callback,
- IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TRIGGER_RISING,
- "events", "events");
+ rc = request_percpu_irq(IRQ_EVTCHN_CALLBACK, xen_arm_callback,
+ "events", xen_vcpu);
if (rc) {
printk(KERN_ERR "Error requesting IRQ %d\n", IRQ_EVTCHN_CALLBACK);
}