[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 18/19] xen/arm: Prevent slipping hypervisor SError to guest
If there is a pending SError while we're returning from trap. If the SError handle option is "DIVERSE", we have to prevent slipping this hypervisor SError to guest. So we have to use the dsb/isb to guarantee that the pending hypervisor SError would be caught in hypervisor before return to guest. Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> --- xen/arch/arm/traps.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 9b4546e..f3d794e 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -2926,6 +2926,16 @@ asmlinkage void leave_hypervisor_tail(void) local_irq_disable(); if (!softirq_pending(smp_processor_id())) { gic_inject(); + + /* + * If the SErrors handle option is "DIVERSE", we have to prevent + * slipping the hypervisor SError to guest. So before returning + * from trap, we use the synchronize_serror to guarantee that the + * pending SError would be caught in hypervisor. + */ + if ( serrors_op == SERRORS_DIVERSE ) + synchronize_serror(); + return; } local_irq_enable(); -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |