[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH 6/6] target/arm: Allow execution from small regions
From: |
Peter Maydell |
Subject: |
[Qemu-arm] [PATCH 6/6] target/arm: Allow execution from small regions |
Date: |
Tue, 10 Jul 2018 17:00:13 +0100 |
Now that we have full support for small regions, including execution,
we can remove the workarounds where we marked all small regions as
non-executable for the M-profile MPU and SAU.
Signed-off-by: Peter Maydell <address@hidden>
---
target/arm/helper.c | 23 -----------------------
1 file changed, 23 deletions(-)
diff --git a/target/arm/helper.c b/target/arm/helper.c
index a2ac96084e7..ed96e6c02fb 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -9784,17 +9784,6 @@ static bool get_phys_addr_pmsav7(CPUARMState *env,
uint32_t address,
fi->type = ARMFault_Permission;
fi->level = 1;
- /*
- * Core QEMU code can't handle execution from small pages yet, so
- * don't try it. This way we'll get an MPU exception, rather than
- * eventually causing QEMU to exit in get_page_addr_code().
- */
- if (*page_size < TARGET_PAGE_SIZE && (*prot & PAGE_EXEC)) {
- qemu_log_mask(LOG_UNIMP,
- "MPU: No support for execution from regions "
- "smaller than 1K\n");
- *prot &= ~PAGE_EXEC;
- }
return !(*prot & (1 << access_type));
}
@@ -10014,18 +10003,6 @@ static bool pmsav8_mpu_lookup(CPUARMState *env,
uint32_t address,
fi->type = ARMFault_Permission;
fi->level = 1;
- /*
- * Core QEMU code can't handle execution from small pages yet, so
- * don't try it. This means any attempted execution will generate
- * an MPU exception, rather than eventually causing QEMU to exit in
- * get_page_addr_code().
- */
- if (*is_subpage && (*prot & PAGE_EXEC)) {
- qemu_log_mask(LOG_UNIMP,
- "MPU: No support for execution from regions "
- "smaller than 1K\n");
- *prot &= ~PAGE_EXEC;
- }
return !(*prot & (1 << access_type));
}
--
2.17.1
- Re: [Qemu-arm] [PATCH 2/6] accel/tcg: Handle get_page_addr_code() returning -1 in hashtable lookups, (continued)
- [Qemu-arm] [PATCH 1/6] accel/tcg: Pass read access type through to io_readx(), Peter Maydell, 2018/07/10
- [Qemu-arm] [PATCH 4/6] accel/tcg: tb_gen_code(): Create single-insn TB for execution from non-RAM, Peter Maydell, 2018/07/10
- [Qemu-arm] [PATCH 3/6] accel/tcg: Handle get_page_addr_code() returning -1 in tb_check_watchpoint(), Peter Maydell, 2018/07/10
- [Qemu-arm] [PATCH 6/6] target/arm: Allow execution from small regions,
Peter Maydell <=
- [Qemu-arm] [PATCH 5/6] accel/tcg: Return -1 for execution from MMIO regions in get_page_addr_code(), Peter Maydell, 2018/07/10
- Re: [Qemu-arm] [PATCH 0/6] accel/tcg: Support execution from MMIO and small MMU regions, Philippe Mathieu-Daudé, 2018/07/11
- Re: [Qemu-arm] [PATCH 0/6] accel/tcg: Support execution from MMIO and small MMU regions, KONRAD Frederic, 2018/07/16