[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly
From: |
Greg Kurz |
Subject: |
Re: [Qemu-ppc] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly |
Date: |
Tue, 20 Mar 2018 11:22:19 +0100 |
On Tue, 20 Mar 2018 13:03:45 +1100
David Gibson <address@hidden> wrote:
> ppc_tr_init_disas_context() correctly sets lazy_tlb_flush to true on
> certain CPU models. However, it leaves it uninitialized, instead of
> setting it to false on all others.
>
> It wasn't caught before now because we didn't have examples in the tests
> that exercised this path. However it can now be caught using clang's
> undefined behaviour sanitizer and the sam460ex board.
>
> Suggested-by: Peter Maydell <address@hidden>
> Signed-off-by: David Gibson <address@hidden>
> ---
Reviewed-by: Greg Kurz <address@hidden>
> target/ppc/translate.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/target/ppc/translate.c b/target/ppc/translate.c
> index 218665b408..3457d29f8e 100644
> --- a/target/ppc/translate.c
> +++ b/target/ppc/translate.c
> @@ -7237,10 +7237,9 @@ static int ppc_tr_init_disas_context(DisasContextBase
> *dcbase,
> ctx->sf_mode = msr_is_64bit(env, env->msr);
> ctx->has_cfar = !!(env->flags & POWERPC_FLAG_CFAR);
> #endif
> - if (env->mmu_model == POWERPC_MMU_32B ||
> - env->mmu_model == POWERPC_MMU_601 ||
> - (env->mmu_model & POWERPC_MMU_64B))
> - ctx->lazy_tlb_flush = true;
> + ctx->lazy_tlb_flush = env->mmu_model == POWERPC_MMU_32B
> + || env->mmu_model == POWERPC_MMU_601
> + || (env->mmu_model & POWERPC_MMU_64B);
>
> ctx->fpu_enabled = !!msr_fp;
> if ((env->flags & POWERPC_FLAG_SPE) && msr_spe)