diff options
Diffstat (limited to 'arch/ia64/xen/irq_xen.c')
| -rw-r--r-- | arch/ia64/xen/irq_xen.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/ia64/xen/irq_xen.c b/arch/ia64/xen/irq_xen.c index 108bb858acf..b279e142c63 100644 --- a/arch/ia64/xen/irq_xen.c +++ b/arch/ia64/xen/irq_xen.c @@ -92,6 +92,8 @@ static unsigned short saved_irq_cnt;  static int xen_slab_ready;  #ifdef CONFIG_SMP +#include <linux/sched.h> +  /* Dummy stub. Though we may check XEN_RESCHEDULE_VECTOR before __do_IRQ,   * it ends up to issue several memory accesses upon percpu data and   * thus adds unnecessary traffic to other paths. @@ -99,7 +101,13 @@ static int xen_slab_ready;  static irqreturn_t  xen_dummy_handler(int irq, void *dev_id)  { +	return IRQ_HANDLED; +} +static irqreturn_t +xen_resched_handler(int irq, void *dev_id) +{ +	scheduler_ipi();  	return IRQ_HANDLED;  } @@ -110,7 +118,7 @@ static struct irqaction xen_ipi_irqaction = {  };  static struct irqaction xen_resched_irqaction = { -	.handler =	xen_dummy_handler, +	.handler =	xen_resched_handler,  	.flags =	IRQF_DISABLED,  	.name =		"resched"  };  |