Message ID | 20210225134652.2127648-9-npiggin@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | KVM: PPC: Book3S: C-ify the P9 entry/exit code | expand |
Hi Nick, > Add a separate hcall entry point. This can be used to deal with the > different calling convention. Looks good to me, makes sense, passes checkpatch. Reviewed-by: Daniel Axtens <dja@axtens.net> Kind regards, Daniel > Reviewed-by: Fabiano Rosas <farosas@linux.ibm.com> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > --- > arch/powerpc/kernel/exceptions-64s.S | 4 ++-- > arch/powerpc/kvm/book3s_64_entry.S | 6 +++++- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S > index d956dd9ed61f..9ae463e8522b 100644 > --- a/arch/powerpc/kernel/exceptions-64s.S > +++ b/arch/powerpc/kernel/exceptions-64s.S > @@ -1992,13 +1992,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR) > * Requires __LOAD_FAR_HANDLER beause kvmppc_interrupt lives > * outside the head section. > */ > - __LOAD_FAR_HANDLER(r10, kvmppc_interrupt) > + __LOAD_FAR_HANDLER(r10, kvmppc_hcall) > mtctr r10 > ld r10,PACA_EXGEN+EX_R10(r13) > bctr > #else > ld r10,PACA_EXGEN+EX_R10(r13) > - b kvmppc_interrupt > + b kvmppc_hcall > #endif > #endif > > diff --git a/arch/powerpc/kvm/book3s_64_entry.S b/arch/powerpc/kvm/book3s_64_entry.S > index c1276f616af4..9572f759255c 100644 > --- a/arch/powerpc/kvm/book3s_64_entry.S > +++ b/arch/powerpc/kvm/book3s_64_entry.S > @@ -7,9 +7,13 @@ > #include <asm/reg.h> > > /* > - * This is branched to from interrupt handlers in exception-64s.S which set > + * These are branched to from interrupt handlers in exception-64s.S which set > * IKVM_REAL or IKVM_VIRT, if HSTATE_IN_GUEST was found to be non-zero. > */ > +.global kvmppc_hcall > +.balign IFETCH_ALIGN_BYTES > +kvmppc_hcall: > + > .global kvmppc_interrupt > .balign IFETCH_ALIGN_BYTES > kvmppc_interrupt: > -- > 2.23.0
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S index d956dd9ed61f..9ae463e8522b 100644 --- a/arch/powerpc/kernel/exceptions-64s.S +++ b/arch/powerpc/kernel/exceptions-64s.S @@ -1992,13 +1992,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR) * Requires __LOAD_FAR_HANDLER beause kvmppc_interrupt lives * outside the head section. */ - __LOAD_FAR_HANDLER(r10, kvmppc_interrupt) + __LOAD_FAR_HANDLER(r10, kvmppc_hcall) mtctr r10 ld r10,PACA_EXGEN+EX_R10(r13) bctr #else ld r10,PACA_EXGEN+EX_R10(r13) - b kvmppc_interrupt + b kvmppc_hcall #endif #endif diff --git a/arch/powerpc/kvm/book3s_64_entry.S b/arch/powerpc/kvm/book3s_64_entry.S index c1276f616af4..9572f759255c 100644 --- a/arch/powerpc/kvm/book3s_64_entry.S +++ b/arch/powerpc/kvm/book3s_64_entry.S @@ -7,9 +7,13 @@ #include <asm/reg.h> /* - * This is branched to from interrupt handlers in exception-64s.S which set + * These are branched to from interrupt handlers in exception-64s.S which set * IKVM_REAL or IKVM_VIRT, if HSTATE_IN_GUEST was found to be non-zero. */ +.global kvmppc_hcall +.balign IFETCH_ALIGN_BYTES +kvmppc_hcall: + .global kvmppc_interrupt .balign IFETCH_ALIGN_BYTES kvmppc_interrupt: