summaryrefslogtreecommitdiff
path: root/target-cris
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2010-09-18 12:34:59 +0200
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2010-09-18 12:34:59 +0200
commit58aebb946acff82c62383f350cab593e55cc13dc (patch)
tree6634ff780f7fa279c996e55f8e274f8a5d34374c /target-cris
parent0b65b9e105ce5bc29d9412e0df476fd0cef3b8e2 (diff)
cris: Fix TLB exec bit protection
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Diffstat (limited to 'target-cris')
-rw-r--r--target-cris/helper.c2
-rw-r--r--target-cris/mmu.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/target-cris/helper.c b/target-cris/helper.c
index 83b25c14da..2a4403b847 100644
--- a/target-cris/helper.c
+++ b/target-cris/helper.c
@@ -101,7 +101,7 @@ int cpu_cris_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
phy = res.phy & ~0x80000000;
prot = res.prot;
tlb_set_page(env, address & TARGET_PAGE_MASK, phy,
- prot | PAGE_EXEC, mmu_idx, TARGET_PAGE_SIZE);
+ prot, mmu_idx, TARGET_PAGE_SIZE);
r = 0;
}
if (r > 0)
diff --git a/target-cris/mmu.c b/target-cris/mmu.c
index 3f290ba9e0..1243745598 100644
--- a/target-cris/mmu.c
+++ b/target-cris/mmu.c
@@ -251,7 +251,7 @@ static int cris_mmu_translate_page(struct cris_mmu_result *res,
res->prot |= PAGE_READ;
if (tlb_w)
res->prot |= PAGE_WRITE;
- if (tlb_x)
+ if (mmu == 0 && (cfg_x || tlb_x))
res->prot |= PAGE_EXEC;
}
else