[PATCH] KVM: PPC: Book3E 64: Fix IRQs warnings and hangs
Caraman Mihai Claudiu-B02008
B02008 at freescale.com
Sat May 4 08:59:32 EST 2013
> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Saturday, May 04, 2013 1:07 AM
> To: Caraman Mihai Claudiu-B02008
> Cc: Wood Scott-B07421; kvm-ppc at vger.kernel.org; kvm at vger.kernel.org;
> linuxppc-dev at lists.ozlabs.org
> Subject: Re: [PATCH] KVM: PPC: Book3E 64: Fix IRQs warnings and hangs
>
> I replaced the two calls to kvmppc_lazy_ee_enable() with calls to
> hard_irq_disable(), and it seems to be working fine.
Please take a look on 'KVM: PPC64: booke: Hard disable interrupts when
entering guest' RFC thread and see if your solution addresses Ben's
comments.
>
> > > > > Where is the arch_local_irq_restore() instance you're talking
> > about?
> > > >
> > > > ./arch/power/kernel/irq.c
> > >
> > > I meant the caller. :-P
> >
> > ./arch/powerpc/include/asm/hw_irq.h
> >
> > 55static inline unsigned long arch_local_irq_disable(void)
> > 56{
> > 57 unsigned long flags, zero;
> > 58
> > 59 asm volatile(
> > 60 "li %1,0; lbz %0,%2(13); stb %1,%2(13)"
> > 61 : "=r" (flags), "=&r" (zero)
> > 62 : "i" (offsetof(struct paca_struct, soft_enabled))
> > 63 : "memory");
> > 64
> > 65 return flags;
> > 66}
> > 67
> > 68extern void arch_local_irq_restore(unsigned long);
> > 69
> > 70static inline void arch_local_irq_enable(void)
> > 71{
> > 72 arch_local_irq_restore(1);
> > 73}
>
> Sigh. I meant the real caller, who's calling local_irq_restore().
I'm not sure what you mean, arch_local_irq_restore() is called indirectly
by local_irq_enable() in our case from handle_exit().
-Mike
More information about the Linuxppc-dev
mailing list