• J
    x86: ignore spurious faults · 5b727a3b
    Jeremy Fitzhardinge 提交于
    When changing a kernel page from RO->RW, it's OK to leave stale TLB
    entries around, since doing a global flush is expensive and they pose
    no security problem.  They can, however, generate a spurious fault,
    which we should catch and simply return from (which will have the
    side-effect of reloading the TLB to the current PTE).
    
    This can occur when running under Xen, because it frequently changes
    kernel pages from RW->RO->RW to implement Xen's pagetable semantics.
    It could also occur when using CONFIG_DEBUG_PAGEALLOC, since it avoids
    doing a global TLB flush after changing page permissions.
    Signed-off-by: NJeremy Fitzhardinge <jeremy@xensource.com>
    Cc: Harvey Harrison <harvey.harrison@gmail.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    5b727a3b
fault.c 25.1 KB