diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index ebbedfd97573..bfd79acca475 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -1204,7 +1204,8 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code, if (unlikely(kprobes_fault(regs))) return; - if (unlikely(error_code & X86_PF_RSVD)) + if (unlikely((error_code & X86_PF_RSVD) && + (error_code & X86_PF_PROT))) pgtable_bad(regs, error_code, address); if (static_cpu_has(X86_FEATURE_SMAP)) {