aboutsummaryrefslogtreecommitdiff
path: root/target-i386
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-11-19 22:04:21 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-11-19 22:04:21 +0000
commitafa05eb15e71a0cca62bd75b5424119419b8a074 (patch)
treea9a67724ec6c9df4e301232ec4bd4fa3abe886fb /target-i386
parentde5eaa6452e8bace2251592475459f6d0fde2c15 (diff)
always completely redefine the TLB in case of MMU fault
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@466 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386')
-rw-r--r--target-i386/helper2.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/target-i386/helper2.c b/target-i386/helper2.c
index fb8f254d4b..9abf7ffc7f 100644
--- a/target-i386/helper2.c
+++ b/target-i386/helper2.c
@@ -400,6 +400,9 @@ int cpu_x86_handle_mmu_fault(CPUX86State *env, uint32_t addr,
if (prot & PROT_WRITE) {
env->tlb_write[is_user][index].address = address;
env->tlb_write[is_user][index].addend = addend;
+ } else {
+ env->tlb_write[is_user][index].address = -1;
+ env->tlb_write[is_user][index].addend = -1;
}
page_set_flags(vaddr, vaddr + TARGET_PAGE_SIZE,
PAGE_VALID | PAGE_EXEC | prot);