[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/6] xen/hvm kexec: unbind debugirq during reboot
On Tue, Jul 26, 2011 at 01:52:13PM +0200, Olaf Hering wrote: > Unregister the debugirq during kexec, otherwise the kexec kernel can not > bind to the still registered virq. What about the other ones? Say spinlock and the timer ones? > > Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> > > --- > arch/x86/xen/smp.c | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > Index: linux-3.0/arch/x86/xen/smp.c > =================================================================== > --- linux-3.0.orig/arch/x86/xen/smp.c > +++ linux-3.0/arch/x86/xen/smp.c > @@ -16,6 +16,7 @@ > #include <linux/err.h> > #include <linux/slab.h> > #include <linux/smp.h> > +#include <linux/syscore_ops.h> > > #include <asm/paravirt.h> > #include <asm/desc.h> > @@ -45,6 +46,21 @@ static DEFINE_PER_CPU(int, xen_debug_irq > static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id); > static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id); > > +static void xen_hvn_smp_shutdown(void) > +{ > + int cpu; > + for_each_online_cpu(cpu) { > + if (per_cpu(xen_debug_irq, cpu) < 0) > + continue; > + unbind_from_irqhandler(per_cpu(xen_debug_irq, cpu), NULL); > + per_cpu(xen_debug_irq, cpu) = -1; > + } > +} > + > +static struct syscore_ops xen_hvn_smp_syscore_ops = { > + .shutdown = xen_hvn_smp_shutdown, > +}; > + > /* > * Reschedule call back. > */ > @@ -525,6 +541,7 @@ static void __init xen_hvm_smp_prepare_c > return; > xen_init_lock_cpu(0); > xen_init_spinlocks(); > + register_syscore_ops(&xen_hvn_smp_syscore_ops); > } > > static int __cpuinit xen_hvm_cpu_up(unsigned int cpu) > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |