* [Qemu-devel] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly
@ 2018-03-20 2:03 David Gibson
2018-03-20 10:12 ` Thomas Huth
2018-03-20 10:22 ` Greg Kurz
0 siblings, 2 replies; 3+ messages in thread
From: David Gibson @ 2018-03-20 2:03 UTC (permalink / raw)
To: thuth, groug, peter.maydell, balaton; +Cc: qemu-ppc, qemu-devel, David Gibson
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 <peter.maydell@linaro.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
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)
--
2.14.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly
2018-03-20 2:03 [Qemu-devel] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly David Gibson
@ 2018-03-20 10:12 ` Thomas Huth
2018-03-20 10:22 ` Greg Kurz
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Huth @ 2018-03-20 10:12 UTC (permalink / raw)
To: David Gibson, groug, peter.maydell, balaton; +Cc: qemu-ppc, qemu-devel
On 20.03.2018 03:03, David Gibson 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 <peter.maydell@linaro.org>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> 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)
>
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly
2018-03-20 2:03 [Qemu-devel] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly David Gibson
2018-03-20 10:12 ` Thomas Huth
@ 2018-03-20 10:22 ` Greg Kurz
1 sibling, 0 replies; 3+ messages in thread
From: Greg Kurz @ 2018-03-20 10:22 UTC (permalink / raw)
To: David Gibson; +Cc: thuth, peter.maydell, balaton, qemu-ppc, qemu-devel
On Tue, 20 Mar 2018 13:03:45 +1100
David Gibson <david@gibson.dropbear.id.au> 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 <peter.maydell@linaro.org>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
Reviewed-by: Greg Kurz <groug@kaod.org>
> 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)
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-03-20 10:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-20 2:03 [Qemu-devel] [PATCH] target/ppc: Initialize lazy_tlb_flush correctly David Gibson
2018-03-20 10:12 ` Thomas Huth
2018-03-20 10:22 ` Greg Kurz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).