> -----Original Message----- > From: Wood Scott-B07421 > Sent: Saturday, May 04, 2013 2:45 AM > To: Alexander Graf > Cc: kvm-ppc@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linuxppc- > dev@xxxxxxxxxxxxxxxx; Wood Scott-B07421; Caraman Mihai Claudiu-B02008 > Subject: [PATCH] kvm/ppc/booke64: Hard disable interrupts when entering > the guest > > kvmppc_lazy_ee_enable() was causing interrupts to be soft-enabled > (albeit hard-disabled) in kvmppc_restart_interrupt(). This led to > warnings, and possibly breakage if the interrupt state was later saved > and then restored (leading to interrupts being hard-and-soft enabled > when they should be at least soft-disabled). > > Simply removing kvmppc_lazy_ee_enable() leaves interrupts only > soft-disabled when we enter the guest, but they will be hard-disabled > when we exit the guest -- without PACA_IRQ_HARD_DIS ever being set, so > the local_irq_enable() fails to hard-enable. Just to mention one special case. may_hard_irq_enable() called from do_IRQ() and timer_interrupt() clears PACA_IRQ_HARD_DIS but it either hard-enable or let PACA_IRQ_EE set which is enough for local_irq_enable() to hard-enable. > > While we could just set PACA_IRQ_HARD_DIS after an exit to compensate, > instead hard-disable interrupts before entering the guest. This way, > we won't have to worry about interactions if we take an interrupt > during the guest entry code. While I don't see any obvious > interactions, it could change in the future (e.g. it would be bad if > the non-hv code were used on 64-bit or if 32-bit guest lazy interrupt > disabling, since the non-hv code changes IVPR among other things). > > Signed-off-by: Scott Wood <scottwood@xxxxxxxxxxxxx> > Cc: Mihai Caraman <mihai.caraman@xxxxxxxxxxxxx> Please add my signed-off, it builds on the same principle of interrupts soft-disabled to fix warnings and irq_happened flags to force interrupts hard-enabled ... and parts of the code ;) -Mike -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html