aboutsummaryrefslogtreecommitdiff
path: root/target-i386/helper.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2014-05-27 13:03:17 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2014-06-05 16:10:35 +0200
commiteaad03e47206882229d184c83488142cba243917 (patch)
tree95dd96dc61544ce61716259ef537b0e509f61300 /target-i386/helper.c
parente2a32ebbfe899a32a6b063f0f9e7c2593267ea88 (diff)
downloadqemu-eaad03e47206882229d184c83488142cba243917.zip
qemu-eaad03e47206882229d184c83488142cba243917.tar.gz
qemu-eaad03e47206882229d184c83488142cba243917.tar.bz2
target-i386: raise page fault for reserved bits in large pages
In large pages, bit 12 is for PAT, but bits starting at 13 are reserved. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target-i386/helper.c')
-rw-r--r--target-i386/helper.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target-i386/helper.c b/target-i386/helper.c
index a2e8bd1..94081e8 100644
--- a/target-i386/helper.c
+++ b/target-i386/helper.c
@@ -695,6 +695,7 @@ int x86_cpu_handle_mmu_fault(CPUState *cs, vaddr addr,
}
do_check_protect:
+ rsvd_mask |= (page_size - 1) & PG_ADDRESS_MASK & ~PG_PSE_PAT_MASK;
if (pte & rsvd_mask) {
goto do_fault_rsvd;
}