diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index c6acc632637417c193394da4881fa19112ace761..0482fa649738718ba5fa6903d45b1862510527e0 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -951,11 +951,11 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) tsk = current; mm = tsk->mm; - prefetchw(&mm->mmap_sem); - /* Get the faulting address: */ address = read_cr2(); + prefetchw(&mm->mmap_sem); + if (unlikely(kmmio_fault(regs, address))) return;