Fix missing env->ca restore when going from L2 back to the host.
Fixes: 120f738a467 ("spapr: implement nested-hv capability for the virtual hypervisor")
Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
hw/ppc/spapr_hcall.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
index b904755575..0582b524d1 100644
--- a/hw/ppc/spapr_hcall.c
+++ b/hw/ppc/spapr_hcall.c
@@ -1773,6 +1773,7 @@ out_restore_l1:
env->cfar = spapr_cpu->nested_host_state->cfar;
env->xer = spapr_cpu->nested_host_state->xer;
env->so = spapr_cpu->nested_host_state->so;
+ env->ca = spapr_cpu->nested_host_state->ca;
env->ov = spapr_cpu->nested_host_state->ov;
env->ov32 = spapr_cpu->nested_host_state->ov32;
env->ca32 = spapr_cpu->nested_host_state->ca32;
--
2.40.1
Since we have the spapr_exit_nested routine that gets executed during
return path which contains the below change, I think mentioning
spapr_exit_nested in the title may be more specific/appropriate.
On 6/8/23 14:43, Nicholas Piggin wrote:
> Fix missing env->ca restore when going from L2 back to the host.
>
> Fixes: 120f738a467 ("spapr: implement nested-hv capability for the virtual hypervisor")
> Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> hw/ppc/spapr_hcall.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> index b904755575..0582b524d1 100644
> --- a/hw/ppc/spapr_hcall.c
> +++ b/hw/ppc/spapr_hcall.c
> @@ -1773,6 +1773,7 @@ out_restore_l1:
> env->cfar = spapr_cpu->nested_host_state->cfar;
> env->xer = spapr_cpu->nested_host_state->xer;
> env->so = spapr_cpu->nested_host_state->so;
> + env->ca = spapr_cpu->nested_host_state->ca;
> env->ov = spapr_cpu->nested_host_state->ov;
> env->ov32 = spapr_cpu->nested_host_state->ov32;
> env->ca32 = spapr_cpu->nested_host_state->ca32;
On Fri Jun 9, 2023 at 5:05 PM AEST, Harsh Prateek Bora wrote:
> Since we have the spapr_exit_nested routine that gets executed during
> return path which contains the below change, I think mentioning
> spapr_exit_nested in the title may be more specific/appropriate.
It's the H_ENTER_NESTED call from the host though. I think that's
the right subject, changelog then says the bug is when returning
back to the host.
Thanks,
Nick
>
> On 6/8/23 14:43, Nicholas Piggin wrote:
> > Fix missing env->ca restore when going from L2 back to the host.
> >
> > Fixes: 120f738a467 ("spapr: implement nested-hv capability for the virtual hypervisor")
> > Reviewed-by: Harsh Prateek Bora <harshpb@linux.ibm.com>
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> > hw/ppc/spapr_hcall.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> > index b904755575..0582b524d1 100644
> > --- a/hw/ppc/spapr_hcall.c
> > +++ b/hw/ppc/spapr_hcall.c
> > @@ -1773,6 +1773,7 @@ out_restore_l1:
> > env->cfar = spapr_cpu->nested_host_state->cfar;
> > env->xer = spapr_cpu->nested_host_state->xer;
> > env->so = spapr_cpu->nested_host_state->so;
> > + env->ca = spapr_cpu->nested_host_state->ca;
> > env->ov = spapr_cpu->nested_host_state->ov;
> > env->ov32 = spapr_cpu->nested_host_state->ov32;
> > env->ca32 = spapr_cpu->nested_host_state->ca32;
© 2016 - 2026 Red Hat, Inc.