ia64/xen-unstable
changeset 13142:988d3a63d9be
[XEN] Don't pass spurious fast-path faults to the guest at all.
Instead, retry and get a sensible fault from the hardware next time.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Instead, retry and get a sensible fault from the hardware next time.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
author | Tim Deegan <Tim.Deegan@xensource.com> |
---|---|
date | Wed Dec 20 12:04:38 2006 +0000 (2006-12-20) |
parents | c75d6f2aad7a |
children | 04c5f7b71ff4 |
files | xen/arch/x86/mm/shadow/multi.c |
line diff
1.1 --- a/xen/arch/x86/mm/shadow/multi.c Wed Dec 20 12:03:07 2006 +0000 1.2 +++ b/xen/arch/x86/mm/shadow/multi.c Wed Dec 20 12:04:38 2006 +0000 1.3 @@ -2645,14 +2645,11 @@ static int sh_page_fault(struct vcpu *v, 1.4 else 1.5 { 1.6 /* This should be exceptionally rare: another vcpu has fixed 1.7 - * the tables between the fault and our reading the l1e. 1.8 - * Fall through to the normal fault handing logic */ 1.9 + * the tables between the fault and our reading the l1e. 1.10 + * Retry and let the hardware give us the right fault next time. */ 1.11 perfc_incrc(shadow_fault_fast_fail); 1.12 - SHADOW_PRINTK("fast path false alarm!\n"); 1.13 - /* Don't pass the reserved-bit bit: if we look at the fault 1.14 - * below and decide to pass it to the guest, the reserved-bit 1.15 - * bit won't make sense there. */ 1.16 - regs->error_code &= ~PFEC_reserved_bit; 1.17 + SHADOW_PRINTK("fast path false alarm!\n"); 1.18 + return EXCRET_fault_fixed; 1.19 } 1.20 } 1.21 #endif /* SHOPT_FAST_FAULT_PATH */