• Frederic Weisbecker's avatar
    x86: Barf when vmalloc and kmemcheck faults happen in NMI · ebc8827f
    Frederic Weisbecker authored
    In x86, faults exit by executing the iret instruction, which then
    reenables NMIs if we faulted in NMI context. Then if a fault
    happens in NMI, another NMI can nest after the fault exits.
    
    But we don't yet support nested NMIs because we have only one NMI
    stack. To prevent from that, check that vmalloc and kmemcheck
    faults don't happen in this context. Most of the other kernel faults
    in NMIs can be more easily spotted by finding explicit
    copy_from,to_user() calls on review.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    ebc8827f
fault.c 26.7 KB