Excerpts from Nicholas Piggin's message of May 23, 2021 10:21 pm:
> Similar to commit 25edcc50d76c ("KVM: PPC: Book3S HV: Save and restore
> FSCR in the P9 path"), ensure the P7/8 path saves and restores the host
> FSCR. The logic explained in that patch actually applies there to the
> old path well: a context switch can be made before kvmppc_vcpu_run_hv
> restores the host FSCR and returns.
> 
> Fixes: b005255e12a3 ("KVM: PPC: Book3S HV: Context-switch new POWER8 SPRs")
> Signed-off-by: Nicholas Piggin <npig...@gmail.com>
> ---
>  arch/powerpc/kvm/book3s_hv_rmhandlers.S | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S 
> b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> index 5e634db4809b..2b98e710c7a1 100644
> --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
> @@ -44,7 +44,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_300)
>  #define NAPPING_UNSPLIT      3
>  
>  /* Stack frame offsets for kvmppc_hv_entry */
> -#define SFS                  208
> +#define SFS                  216
>  #define STACK_SLOT_TRAP              (SFS-4)
>  #define STACK_SLOT_SHORT_PATH        (SFS-8)
>  #define STACK_SLOT_TID               (SFS-16)
> @@ -59,8 +59,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_300)
>  #define STACK_SLOT_UAMOR     (SFS-88)
>  #define STACK_SLOT_DAWR1     (SFS-96)
>  #define STACK_SLOT_DAWRX1    (SFS-104)
> +#define STACK_SLOT_FSCR              (SFS-112)
>  /* the following is used by the P9 short path */
> -#define STACK_SLOT_NVGPRS    (SFS-152)       /* 18 gprs */
> +#define STACK_SLOT_NVGPRS    (SFS-160)       /* 18 gprs */

Actually, hmm.. this is wrong because nvgprs are subtracted from
this offset. But then I can't work out why 95a6432ce9038 raised
SFS from 160 to 208.

Thanks,
Nick

Reply via email to