diff -r 63325e5b0a9d src/arch/x86/pagetable_walker.cc --- a/src/arch/x86/pagetable_walker.cc Fri Jan 27 15:07:20 2017 -0600 +++ b/src/arch/x86/pagetable_walker.cc Tue Feb 14 01:04:13 2017 +0000 @@ -708,10 +708,9 @@ { DPRINTF(PageTableWalker, "Raising page fault.\n"); HandyM5Reg m5reg = tc->readMiscRegNoEffect(MISCREG_M5_REG); - if (mode == BaseTLB::Execute && !enableNX) - mode = BaseTLB::Read; - return std::make_shared(entry.vaddr, present, mode, - m5reg.cpl == 3, false); + return std::make_shared(entry.vaddr, present, + (mode == BaseTLB::Execute && !enableNX) ? BaseTLB::Read : mode, + m5reg.cpl == 3, false); } /* end namespace X86ISA */ }