• Avi Kivity's avatar
    [PATCH] KVM: fix bogus pagefault on writable pages · fc3dffe1
    Avi Kivity authored
    If a page is marked as dirty in the guest pte, set_pte_common() can set the
    writable bit on newly-instantiated shadow pte.  This optimization avoids
    a write fault after the initial read fault.
    
    However, if a write fault instantiates the pte, fix_write_pf() incorrectly
    reports the fault as a guest page fault, and the guest oopses on what appears
    to be a correctly-mapped page.
    
    Fix is to detect the condition and only report a guest page fault on a user
    access to a kernel page.
    
    With the fix, a kvm guest can survive a whole night of running the kernel
    hacker's screensaver (make -j9 in a loop).
    Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    fc3dffe1
paging_tmpl.h 12.3 KB