Thread (4 messages) 4 messages, 4 authors, 2025-03-14

Re: [PATCH] powerpc: Fix 'intra_function_call not a direct call' warning

From: Sathvika Vasireddy <hidden>
Date: 2025-03-05 07:43:39

On 3/5/25 4:30 AM, Christophe Leroy wrote:
quoted hunk ↗ jump to hunk
The following build warning have been reported:

   arch/powerpc/kvm/book3s_hv_rmhandlers.o: warning: objtool: .text+0xe84: intra_function_call not a direct call
   arch/powerpc/kernel/switch.o: warning: objtool: .text+0x4: intra_function_call not a direct call

This happens due to commit bb7f054f4de2 ("objtool/powerpc: Add support
for decoding all types of uncond branches") because that commit decodes
'bl .+4' as a normal instruction because that instruction is used by
clang instead of 'bcl 20,31,+.4' for relocatable code.

The solution is simply to remove the ANNOTATE_INTRA_FUNCTION_CALL
annotation now that the instruction is not seen as a function call
anymore.

Reported-by: Venkat Rao Bagalkote<redacted>
Closes:https://lore.kernel.org/all/8c4c3fc2-2bd7-4148-af68-2f504d6119e0@linux.ibm.com (local)
Fixes: bb7f054f4de2 ("objtool/powerpc: Add support for decoding all types of uncond branches")
Signed-off-by: Christophe Leroy<redacted>
---
  arch/powerpc/kernel/switch.S            | 1 -
  arch/powerpc/kvm/book3s_hv_rmhandlers.S | 2 --
  2 files changed, 3 deletions(-)
diff --git a/arch/powerpc/kernel/switch.S b/arch/powerpc/kernel/switch.S
index 608c0ce7cec6..59e3ee99db0e 100644
--- a/arch/powerpc/kernel/switch.S
+++ b/arch/powerpc/kernel/switch.S
@@ -39,7 +39,6 @@ flush_branch_caches:
  
  	// Flush the link stack
  	.rept 64
-	ANNOTATE_INTRA_FUNCTION_CALL
  	bl	.+4
  	.endr
  	b	1f
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index ea7ad200b330..83f7504349d2 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1524,14 +1524,12 @@ kvm_flush_link_stack:
  
  	/* Flush the link stack. On Power8 it's up to 32 entries in size. */
  	.rept 32
-	ANNOTATE_INTRA_FUNCTION_CALL
  	bl	.+4
  	.endr
  
  	/* And on Power9 it's up to 64. */
  BEGIN_FTR_SECTION
  	.rept 32
-	ANNOTATE_INTRA_FUNCTION_CALL
  	bl	.+4
  	.endr
  END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
The warnings are now fixed and the patch looks good to me.

Reviewed-by: Sathvika Vasireddy <redacted>

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