On Mon, Jan 07, 2013 at 01:27:51PM +0000, Marc Zyngier wrote: > On 07/01/13 12:18, Dave Martin wrote: > > On Fri, Jan 04, 2013 at 05:44:15PM +0000, Marc Zyngier wrote: > >> __hyp_stub_install duplicates quite a bit of safe_svcmode_maskall > >> by forcing the CPU back to SVC. This is unnecessary, as > >> safe_svcmode_maskall is called just after. > >> > >> Furthermore, the way we build SPSR_hyp is buggy as we fail to mask > >> the interrupts, leading to interesting behaviours on TC2 + UEFI. > >> > >> The fix is to simply remove this code and rely on safe_svcmode_maskall > >> to do the right thing. > >> > >> Cc: Dave Martin <dave.martin@xxxxxxxxxx> > >> Reported-by: Harry Liebel <harry.liebel@xxxxxxx> > >> Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > > > > Although there is clearly a bug here, it looks like interrupts will > > promptly get masked afterwards due to save_svcmode_maskall. This would > > only fail if there is an interrupts asserted during this hazard ...? > > That's exactly the failure case. It's been observed on TC2 with UEFI, > where the secondaries are woken up with a SGI. When they get out of WFI, > the interrupt is still pending. After reaching this code and doing an > eret, the interrupt fires immediately, with deadly consequences. Ah right. In which case we also have good evidence that the proposed fix fixes it. Sounds good Cheers ---Dave _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm