On 07/10/2018 01:00 PM, Peter Maydell wrote:
> 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 <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> 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));
> }
>
>