[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 5/6] xen/hvm kexec: unregister timer interrupt during reboot
On Tue, Jul 26, Konrad Rzeszutek Wilk wrote: > On Tue, Jul 26, 2011 at 01:52:14PM +0200, Olaf Hering wrote: > > The kexec kernel will crash because the timer interrupt is already > > registerd with EVTCHNOP_bind_virq. Unbind the event channel during > > shutdown so that the kexec kernel can reregister the interrupt. > > > > Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> > > > > --- > > arch/x86/xen/time.c | 27 ++++++++++++++++++++++++--- > > 1 file changed, 24 insertions(+), 3 deletions(-) > > > > Index: linux-3.0/arch/x86/xen/time.c > > =================================================================== > > --- linux-3.0.orig/arch/x86/xen/time.c > > +++ linux-3.0/arch/x86/xen/time.c > > @@ -14,6 +14,7 @@ > > #include <linux/kernel_stat.h> > > #include <linux/math64.h> > > #include <linux/gfp.h> > > +#include <linux/syscore_ops.h> > > > > #include <asm/pvclock.h> > > #include <asm/xen/hypervisor.h> > > @@ -405,12 +406,20 @@ void xen_setup_timer(int cpu) > > evt->irq = irq; > > } > > > > -void xen_teardown_timer(int cpu) > > +static void xen_unbind_timer(int cpu) > > { > > struct clock_event_device *evt; > > - BUG_ON(cpu == 0); > > evt = &per_cpu(xen_clock_events, cpu); > > - unbind_from_irqhandler(evt->irq, NULL); > > + if (evt->irq >= 0) { > > + unbind_from_irqhandler(evt->irq, NULL); > > + evt->irq = -1; > > + } > > +} > > + > > +void xen_teardown_timer(int cpu) > > +{ > > + BUG_ON(cpu == 0); > > Why the BUG? Ah you just copied it from xen_unbind_timer. > Hm, I wonder if we actually need that BUG_ON. A quick grep did not show up the place where /sys/devices/system/cpu/cpu0/online would have been created. Since that file is missing in my guest I think cpu0 can not be shutdown, So that BUG_ON() can probably go. Olaf _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |