Commit 382094a4 authored by Christophe Leroy's avatar Christophe Leroy Committed by Madhavan Srinivasan
Browse files

powerpc: Fix 'intra_function_call not a direct call' warning



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 bb7f054f ("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: default avatarVenkat Rao Bagalkote <venkat88@linux.ibm.com>
Closes: https://lore.kernel.org/all/8c4c3fc2-2bd7-4148-af68-2f504d6119e0@linux.ibm.com


Fixes: bb7f054f ("objtool/powerpc: Add support for decoding all types of uncond branches")
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Tested-By: default avatarVenkat Rao Bagalkote <venkat88@linux.ibm.com>
Reviewed-by: default avatarSathvika Vasireddy <sv@linux.ibm.com>
Signed-off-by: default avatarMadhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/88876fb4e412203452e57d1037a1341cf15ccc7b.1741128981.git.christophe.leroy@csgroup.eu
parent ff99d5b6
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ flush_branch_caches:

	// Flush the link stack
	.rept 64
	ANNOTATE_INTRA_FUNCTION_CALL
	bl	.+4
	.endr
	b	1f
+0 −2
Original line number Diff line number Diff line
@@ -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)