Re: [PATCH 2/2] ARM: hyp: simplify __hyp_stub_install epilog

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

> Anyway, There's certainly no sense in trying to drop down to SVC mode
> twice, so I agree that it is better to delegate that to the
> save_svcmode_maskall macro.
> 
> Reviewed-by: Dave Martin <dave.martin@xxxxxxxxxx>

Thanks!

	M.
-- 
Jazz is not dead. It just smells funny...


_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm


[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux