On Wed, Jul 27, 2011 at 04:05:12PM +0200, Olaf Hering wrote:
> 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.
ok, Thanks for looking around for that. If you can just send that
BUG_ON() remove check as a seperate cleanup patch it would be much appreciated.
(either before this patch or after it).
>
> Olaf
>
> _______________________________________________
> 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
|