Subject: fold per-CPU VIRQs onto a single IRQ each
Patch-mainline: obsolete
---- sle11-2009-06-04.orig/arch/x86/kernel/time_32-xen.c 2009-06-04 10:47:20.000000000 +0200
-+++ sle11-2009-06-04/arch/x86/kernel/time_32-xen.c 2009-06-04 10:47:28.000000000 +0200
-@@ -725,19 +725,17 @@ int xen_update_persistent_clock(void)
+--- sle11-2009-10-16.orig/arch/x86/kernel/time_32-xen.c 2009-10-28 14:59:22.000000000 +0100
++++ sle11-2009-10-16/arch/x86/kernel/time_32-xen.c 2009-10-28 14:59:30.000000000 +0100
+@@ -726,19 +726,17 @@ int xen_update_persistent_clock(void)
}
/* Dynamically-mapped IRQ. */
}
void __init time_init(void)
-@@ -864,8 +862,6 @@ void xen_halt(void)
+@@ -865,8 +863,6 @@ void xen_halt(void)
EXPORT_SYMBOL(xen_halt);
#ifdef CONFIG_SMP
int __cpuinit local_setup_timer(unsigned int cpu)
{
int seq, irq;
-@@ -891,16 +887,10 @@ int __cpuinit local_setup_timer(unsigned
+@@ -892,16 +888,10 @@ int __cpuinit local_setup_timer(unsigned
init_missing_ticks_accounting(cpu);
} while (read_seqretry(&xtime_lock, seq));
return 0;
}
-@@ -908,7 +898,7 @@ int __cpuinit local_setup_timer(unsigned
+@@ -909,7 +899,7 @@ int __cpuinit local_setup_timer(unsigned
void __cpuinit local_teardown_timer(unsigned int cpu)
{
BUG_ON(cpu == 0);
}
#endif
---- sle11-2009-06-04.orig/drivers/xen/core/evtchn.c 2009-06-04 10:47:21.000000000 +0200
-+++ sle11-2009-06-04/drivers/xen/core/evtchn.c 2009-06-04 10:47:28.000000000 +0200
+--- sle11-2009-10-16.orig/drivers/xen/core/evtchn.c 2009-06-04 10:47:21.000000000 +0200
++++ sle11-2009-10-16/drivers/xen/core/evtchn.c 2009-06-04 10:47:28.000000000 +0200
@@ -58,6 +58,23 @@ static DEFINE_SPINLOCK(irq_mapping_updat
static int evtchn_to_irq[NR_EVENT_CHANNELS] = {
[0 ... NR_EVENT_CHANNELS-1] = -1 };
init_evtchn_cpu_bindings();
pirq_needs_eoi = alloc_bootmem_pages(sizeof(unsigned long)
---- sle11-2009-06-04.orig/drivers/xen/core/smpboot.c 2009-06-04 10:47:21.000000000 +0200
-+++ sle11-2009-06-04/drivers/xen/core/smpboot.c 2009-06-04 10:47:28.000000000 +0200
+--- sle11-2009-10-16.orig/drivers/xen/core/smpboot.c 2009-06-04 10:47:21.000000000 +0200
++++ sle11-2009-10-16/drivers/xen/core/smpboot.c 2009-06-04 10:47:28.000000000 +0200
@@ -163,11 +163,11 @@ static int __cpuinit xen_smp_intr_init(u
fail:
xen_spinlock_cleanup(cpu);
xen_spinlock_cleanup(cpu);
}
#endif
---- sle11-2009-06-04.orig/drivers/xen/core/spinlock.c 2009-06-04 10:47:21.000000000 +0200
-+++ sle11-2009-06-04/drivers/xen/core/spinlock.c 2009-06-04 10:47:28.000000000 +0200
+--- sle11-2009-10-16.orig/drivers/xen/core/spinlock.c 2009-06-04 10:47:21.000000000 +0200
++++ sle11-2009-10-16/drivers/xen/core/spinlock.c 2009-06-04 10:47:28.000000000 +0200
@@ -57,7 +57,7 @@ int __cpuinit xen_spinlock_init(unsigned
void __cpuinit xen_spinlock_cleanup(unsigned int cpu)
}
int xen_spin_wait(raw_spinlock_t *lock, unsigned int token)
---- sle11-2009-06-04.orig/drivers/xen/netback/netback.c 2009-06-04 10:20:21.000000000 +0200
-+++ sle11-2009-06-04/drivers/xen/netback/netback.c 2009-06-04 10:47:28.000000000 +0200
+--- sle11-2009-10-16.orig/drivers/xen/netback/netback.c 2009-02-16 16:18:36.000000000 +0100
++++ sle11-2009-10-16/drivers/xen/netback/netback.c 2009-06-04 10:47:28.000000000 +0200
@@ -1561,6 +1561,12 @@ static irqreturn_t netif_be_dbg(int irq,
return IRQ_HANDLED;
#endif
return 0;
---- sle11-2009-06-04.orig/drivers/xen/xenoprof/xenoprofile.c 2009-06-04 10:20:39.000000000 +0200
-+++ sle11-2009-06-04/drivers/xen/xenoprof/xenoprofile.c 2009-06-04 10:47:28.000000000 +0200
+--- sle11-2009-10-16.orig/drivers/xen/xenoprof/xenoprofile.c 2009-03-16 16:33:40.000000000 +0100
++++ sle11-2009-10-16/drivers/xen/xenoprof/xenoprofile.c 2009-06-04 10:47:28.000000000 +0200
@@ -210,6 +210,11 @@ static irqreturn_t xenoprof_ovf_interrup
return IRQ_HANDLED;
}
if (result < 0) {
unbind_virq();
---- sle11-2009-06-04.orig/include/xen/evtchn.h 2009-06-04 10:47:21.000000000 +0200
-+++ sle11-2009-06-04/include/xen/evtchn.h 2009-06-04 10:47:28.000000000 +0200
+--- sle11-2009-10-16.orig/include/xen/evtchn.h 2009-06-04 10:47:21.000000000 +0200
++++ sle11-2009-10-16/include/xen/evtchn.h 2009-06-04 10:47:28.000000000 +0200
@@ -78,6 +78,17 @@ int bind_virq_to_irqhandler(
unsigned long irqflags,
const char *devname,