[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v1 1/3] target-arm: Apply S2 MMU startlevel table
From: |
Alex Bennée |
Subject: |
Re: [Qemu-arm] [PATCH v1 1/3] target-arm: Apply S2 MMU startlevel table size check to AArch64 |
Date: |
Wed, 20 Jan 2016 19:29:54 +0000 |
User-agent: |
mu4e 0.9.15; emacs 25.0.50.3 |
Edgar E. Iglesias <address@hidden> writes:
> From: "Edgar E. Iglesias" <address@hidden>
>
> The S2 starting level table size check applies to both AArch32
> and AArch64. Move it to common code.
>
> Signed-off-by: Edgar E. Iglesias <address@hidden>
> ---
> target-arm/helper.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/target-arm/helper.c b/target-arm/helper.c
> index f956b67..8aedce9 100644
> --- a/target-arm/helper.c
> +++ b/target-arm/helper.c
> @@ -6581,11 +6581,19 @@ typedef enum {
> static bool check_s2_startlevel(ARMCPU *cpu, bool is_aa64, int level,
> int inputsize, int stride)
> {
> + const int grainsize = stride + 3;
> + int startsizecheck;
> +
> /* Negative levels are never allowed. */
> if (level < 0) {
> return false;
> }
>
> + startsizecheck = inputsize - ((3 - level) * stride + grainsize);
> + if (startsizecheck < 1 || startsizecheck > stride + 4) {
> + return false;
> + }
> +
> if (is_aa64) {
> unsigned int pamax = arm_pamax(cpu);
>
> @@ -6609,20 +6617,12 @@ static bool check_s2_startlevel(ARMCPU *cpu, bool
> is_aa64, int level,
> g_assert_not_reached();
> }
> } else {
> - const int grainsize = stride + 3;
> - int startsizecheck;
> -
> /* AArch32 only supports 4KB pages. Assert on that. */
> assert(stride == 9);
>
> if (level == 0) {
> return false;
> }
> -
> - startsizecheck = inputsize - ((3 - level) * stride + grainsize);
> - if (startsizecheck < 1 || startsizecheck > stride + 4) {
> - return false;
> - }
> }
> return true;
> }
Reviewed-by: Alex Bennée <address@hidden>
--
Alex Bennée