Message ID | 20210315184615.1985590-5-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | target/ppc: Fix truncation of env->hflags | expand |
On 3/15/21 7:46 PM, Richard Henderson wrote: > In ppc_store_msr we call hreg_compute_hflags, which itself > calls hreg_compute_mem_idx. Rely on ppc_store_msr to update > everything required by the msr update. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > target/ppc/machine.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/target/ppc/machine.c b/target/ppc/machine.c > index 87d7bffb86..f6eeda9642 100644 > --- a/target/ppc/machine.c > +++ b/target/ppc/machine.c > @@ -125,9 +125,6 @@ static int cpu_load_old(QEMUFile *f, void *opaque, int version_id) > env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB); > ppc_store_msr(env, msr); > > - /* Recompute mmu indices */ > - hreg_compute_mem_idx(env); > - > return 0; > } > > @@ -418,14 +415,12 @@ static int cpu_post_load(void *opaque, int version_id) > > /* > * Invalidate all supported msr bits except MSR_TGPR/MSR_HVB > - * before restoring > + * before restoring. Note that this recomputes hflags and mem_idx. > */ > msr = env->msr; > env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB); > ppc_store_msr(env, msr); > > - hreg_compute_mem_idx(env); > - > return 0; > } > >
On Mon, Mar 15, 2021 at 12:46:02PM -0600, Richard Henderson wrote: > In ppc_store_msr we call hreg_compute_hflags, which itself > calls hreg_compute_mem_idx. Rely on ppc_store_msr to update > everything required by the msr update. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Applied to ppc-for-6.0. > --- > target/ppc/machine.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/target/ppc/machine.c b/target/ppc/machine.c > index 87d7bffb86..f6eeda9642 100644 > --- a/target/ppc/machine.c > +++ b/target/ppc/machine.c > @@ -125,9 +125,6 @@ static int cpu_load_old(QEMUFile *f, void *opaque, int version_id) > env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB); > ppc_store_msr(env, msr); > > - /* Recompute mmu indices */ > - hreg_compute_mem_idx(env); > - > return 0; > } > > @@ -418,14 +415,12 @@ static int cpu_post_load(void *opaque, int version_id) > > /* > * Invalidate all supported msr bits except MSR_TGPR/MSR_HVB > - * before restoring > + * before restoring. Note that this recomputes hflags and mem_idx. > */ > msr = env->msr; > env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB); > ppc_store_msr(env, msr); > > - hreg_compute_mem_idx(env); > - > return 0; > } > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
diff --git a/target/ppc/machine.c b/target/ppc/machine.c index 87d7bffb86..f6eeda9642 100644 --- a/target/ppc/machine.c +++ b/target/ppc/machine.c @@ -125,9 +125,6 @@ static int cpu_load_old(QEMUFile *f, void *opaque, int version_id) env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB); ppc_store_msr(env, msr); - /* Recompute mmu indices */ - hreg_compute_mem_idx(env); - return 0; } @@ -418,14 +415,12 @@ static int cpu_post_load(void *opaque, int version_id) /* * Invalidate all supported msr bits except MSR_TGPR/MSR_HVB - * before restoring + * before restoring. Note that this recomputes hflags and mem_idx. */ msr = env->msr; env->msr ^= env->msr_mask & ~((1ULL << MSR_TGPR) | MSR_HVB); ppc_store_msr(env, msr); - hreg_compute_mem_idx(env); - return 0; }
In ppc_store_msr we call hreg_compute_hflags, which itself calls hreg_compute_mem_idx. Rely on ppc_store_msr to update everything required by the msr update. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- target/ppc/machine.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) -- 2.25.1