Thread (12 messages) 12 messages, 2 authors, 2023-03-06

Re: [PATCH 1/2] arch/powerpc/kvm: kvmppc_hv_entry: remove .global scope

From: Sathvika Vasireddy <hidden>
Date: 2023-02-20 08:02:46

On 20/02/23 12:58, Kautuk Consul wrote:
Hi Sathvika,

(Sorry didn't include list in earlier email.)

On Mon, Feb 20, 2023 at 12:35:09PM +0530, Sathvika Vasireddy wrote:
quoted
Hi Kautuk,

On 20/02/23 10:53, Kautuk Consul wrote:
quoted
kvmppc_hv_entry isn't called from anywhere other than
book3s_hv_rmhandlers.S itself. Removing .global scope for
this function.

Signed-off-by: Kautuk Consul <redacted>
---
   arch/powerpc/kvm/book3s_hv_rmhandlers.S | 1 -
   1 file changed, 1 deletion(-)
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index acf80915f406..7e063fde7adc 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -502,7 +502,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
    *                                                                            *
    *****************************************************************************/
-.global kvmppc_hv_entry
   kvmppc_hv_entry:
   	/* Required state:
I see the following objtool warning with this patch applied.
arch/powerpc/kvm/book3s_hv_rmhandlers.o: warning: objtool: .text+0x48:
unannotated intra-function call

Annotating kvmppc_hv_entry symbol with SYM_FUNC_START_LOCAL and SYM_FUNC_END
macros should help fix this warning.
Not sure where to put the SYM_FUNC_END annotation.
Will the following do:
<snip>
     ld  r0, VCPU_GPR(R0)(r4)
     ld  r2, VCPU_GPR(R2)(r4)
     ld  r3, VCPU_GPR(R3)(r4)
     ld  r4, VCPU_GPR(R4)(r4)
     HRFI_TO_GUEST
     b   .

SYM_FUNC_END(kvmppc_hv_entry)

secondary_too_late:
     li  r12, 0

?

Thanks.
Placing SYM_FUNC_END(kvmppc_hv_entry) before kvmppc_got_guest() should do:
@@ -502,12 +500,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
* *
*****************************************************************************/

-.global kvmppc_hv_entry
-kvmppc_hv_entry:
+SYM_FUNC_START_LOCAL(kvmppc_hv_entry)

         /* Required state:
          *
-        * R4 = vcpu pointer (or NULL)
          * MSR = ~IR|DR
          * R13 = PACA
          * R1 = host R1
@@ -525,6 +521,8 @@ kvmppc_hv_entry:
         li      r6, KVM_GUEST_MODE_HOST_HV
         stb     r6, HSTATE_IN_GUEST(r13)

+       ld      r4, HSTATE_KVM_VCPU(r13)
+
  #ifdef CONFIG_KVM_BOOK3S_HV_P8_TIMING
         /* Store initial timestamp */
         cmpdi   r4, 0
@@ -619,6 +617,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
         /* Do we have a guest vcpu to run? */
  10:    cmpdi   r4, 0
         beq     kvmppc_primary_no_guest
+SYM_FUNC_END(kvmppc_hv_entry)
+
  kvmppc_got_guest:
         /* Increment yield count if they have a VPA */
         ld      r3, VCPU_VPA(r4)

Thanks,
Sathvika
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help