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 <[email protected]>
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
signature.asc
Description: PGP signature
