diff options
author | Edgar E. Iglesias <edgar.iglesias@gmail.com> | 2010-09-18 12:34:59 +0200 |
---|---|---|
committer | Edgar E. Iglesias <edgar.iglesias@gmail.com> | 2010-09-18 12:34:59 +0200 |
commit | 58aebb946acff82c62383f350cab593e55cc13dc (patch) | |
tree | 6634ff780f7fa279c996e55f8e274f8a5d34374c | |
parent | 0b65b9e105ce5bc29d9412e0df476fd0cef3b8e2 (diff) |
cris: Fix TLB exec bit protection
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
-rw-r--r-- | target-cris/helper.c | 2 | ||||
-rw-r--r-- | target-cris/mmu.c | 2 |
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 |