All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for-3.1] target/arm: Remove workaround for small SAU regions
@ 2018-11-06 16:38 Peter Maydell
  2018-11-06 17:29 ` Philippe Mathieu-Daudé
  2018-11-08  9:19 ` Richard Henderson
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Maydell @ 2018-11-06 16:38 UTC (permalink / raw)
  To: qemu-arm, qemu-devel; +Cc: patches

Before we supported direct execution from MMIO regions, we
implemented workarounds in commit 720424359917887c926a33d2
which let us avoid doing so, even if the SAU or MPU region
was less than page-sized.

Once we implemented execute-from-MMIO, we removed part
of those workarounds in commit d4b6275df320cee76; but
we forgot the one in get_phys_addr_pmsav8() which
suppressed use of small SAU regions in executable regions.
Remove that workaround now.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 target/arm/helper.c | 12 ------------
 1 file changed, 12 deletions(-)

diff --git a/target/arm/helper.c b/target/arm/helper.c
index 96301930cc8..ec56becc394 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -10560,18 +10560,6 @@ static bool get_phys_addr_pmsav8(CPUARMState *env, uint32_t address,
 
     ret = pmsav8_mpu_lookup(env, address, access_type, mmu_idx, phys_ptr,
                             txattrs, prot, &mpu_is_subpage, fi, NULL);
-    /*
-     * TODO: this is a temporary hack to ignore the fact that the SAU region
-     * is smaller than a page if this is an executable region. We never
-     * supported small MPU regions, but we did (accidentally) allow small
-     * SAU regions, and if we now made small SAU regions not be executable
-     * then this would break previously working guest code. We can't
-     * remove this until/unless we implement support for execution from
-     * small regions.
-     */
-    if (*prot & PAGE_EXEC) {
-        sattrs.subpage = false;
-    }
     *page_size = sattrs.subpage || mpu_is_subpage ? 1 : TARGET_PAGE_SIZE;
     return ret;
 }
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH for-3.1] target/arm: Remove workaround for small SAU regions
  2018-11-06 16:38 [Qemu-devel] [PATCH for-3.1] target/arm: Remove workaround for small SAU regions Peter Maydell
@ 2018-11-06 17:29 ` Philippe Mathieu-Daudé
  2018-11-08  9:19 ` Richard Henderson
  1 sibling, 0 replies; 3+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-11-06 17:29 UTC (permalink / raw)
  To: Peter Maydell, qemu-arm, qemu-devel; +Cc: patches

On 6/11/18 17:38, Peter Maydell wrote:
> Before we supported direct execution from MMIO regions, we
> implemented workarounds in commit 720424359917887c926a33d2
> which let us avoid doing so, even if the SAU or MPU region
> was less than page-sized.
> 
> Once we implemented execute-from-MMIO, we removed part
> of those workarounds in commit d4b6275df320cee76; but
> we forgot the one in get_phys_addr_pmsav8() which
> suppressed use of small SAU regions in executable regions.
> Remove that workaround now.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---
>   target/arm/helper.c | 12 ------------
>   1 file changed, 12 deletions(-)
> 
> diff --git a/target/arm/helper.c b/target/arm/helper.c
> index 96301930cc8..ec56becc394 100644
> --- a/target/arm/helper.c
> +++ b/target/arm/helper.c
> @@ -10560,18 +10560,6 @@ static bool get_phys_addr_pmsav8(CPUARMState *env, uint32_t address,
>   
>       ret = pmsav8_mpu_lookup(env, address, access_type, mmu_idx, phys_ptr,
>                               txattrs, prot, &mpu_is_subpage, fi, NULL);
> -    /*
> -     * TODO: this is a temporary hack to ignore the fact that the SAU region
> -     * is smaller than a page if this is an executable region. We never
> -     * supported small MPU regions, but we did (accidentally) allow small
> -     * SAU regions, and if we now made small SAU regions not be executable
> -     * then this would break previously working guest code. We can't
> -     * remove this until/unless we implement support for execution from
> -     * small regions.
> -     */
> -    if (*prot & PAGE_EXEC) {
> -        sattrs.subpage = false;
> -    }
>       *page_size = sattrs.subpage || mpu_is_subpage ? 1 : TARGET_PAGE_SIZE;
>       return ret;
>   }
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH for-3.1] target/arm: Remove workaround for small SAU regions
  2018-11-06 16:38 [Qemu-devel] [PATCH for-3.1] target/arm: Remove workaround for small SAU regions Peter Maydell
  2018-11-06 17:29 ` Philippe Mathieu-Daudé
@ 2018-11-08  9:19 ` Richard Henderson
  1 sibling, 0 replies; 3+ messages in thread
From: Richard Henderson @ 2018-11-08  9:19 UTC (permalink / raw)
  To: Peter Maydell, qemu-arm, qemu-devel; +Cc: patches

On 11/6/18 5:38 PM, Peter Maydell wrote:
> Before we supported direct execution from MMIO regions, we
> implemented workarounds in commit 720424359917887c926a33d2
> which let us avoid doing so, even if the SAU or MPU region
> was less than page-sized.
> 
> Once we implemented execute-from-MMIO, we removed part
> of those workarounds in commit d4b6275df320cee76; but
> we forgot the one in get_phys_addr_pmsav8() which
> suppressed use of small SAU regions in executable regions.
> Remove that workaround now.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  target/arm/helper.c | 12 ------------
>  1 file changed, 12 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-11-08  9:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-06 16:38 [Qemu-devel] [PATCH for-3.1] target/arm: Remove workaround for small SAU regions Peter Maydell
2018-11-06 17:29 ` Philippe Mathieu-Daudé
2018-11-08  9:19 ` Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.