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>
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 */