On Mon, Sep 04, 2017 at 11:46:55PM +0200, Greg Kurz wrote: > Commit b55d295e3ec9 added the possibility to support HPT resizing with KVM. > In the case of PR, we need to pass the userspace address of the HPT to KVM > using the SDR1 slot. > This is handled by kvmppc_update_sdr1() which uses CPU_FOREACH() to update > all CPUs. It is hence not needed to call kvmppc_update_sdr1() for each CPU. > > Signed-off-by: Greg Kurz Applied to ppc-for-2.11. > --- > hw/ppc/spapr_hcall.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c > index 8b3c0e17e75c..6ab8c188f381 100644 > --- a/hw/ppc/spapr_hcall.c > +++ b/hw/ppc/spapr_hcall.c > @@ -1559,20 +1559,16 @@ static target_ulong h_client_architecture_support(PowerPCCPU *cpu, > } > > if (spapr->htab_shift < maxshift) { > - CPUState *cs; > - > /* Guest doesn't know about HPT resizing, so we > * pre-emptively resize for the maximum permitted RAM. At > * the point this is called, nothing should have been > * entered into the existing HPT */ > spapr_reallocate_hpt(spapr, maxshift, &error_fatal); > - CPU_FOREACH(cs) { > - if (kvm_enabled()) { > - /* For KVM PR, update the HPT pointer */ > - target_ulong sdr1 = (target_ulong)(uintptr_t)spapr->htab > - | (spapr->htab_shift - 18); > - kvmppc_update_sdr1(sdr1); > - } > + if (kvm_enabled()) { > + /* For KVM PR, update the HPT pointer */ > + target_ulong sdr1 = (target_ulong)(uintptr_t)spapr->htab > + | (spapr->htab_shift - 18); > + kvmppc_update_sdr1(sdr1); > } > } > } > -- 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