]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
powerpc: Fix 'intra_function_call not a direct call' warning
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Tue, 4 Mar 2025 23:00:19 +0000 (00:00 +0100)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Mon, 10 Mar 2025 04:30:17 +0000 (10:00 +0530)
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 <venkat88@linux.ibm.com>
Closes: https://lore.kernel.org/all/8c4c3fc2-2bd7-4148-af68-2f504d6119e0@linux.ibm.com
Fixes: bb7f054f4de2 ("objtool/powerpc: Add support for decoding all types of uncond branches")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-By: Venkat Rao Bagalkote <venkat88@linux.ibm.com>
Reviewed-by: Sathvika Vasireddy <sv@linux.ibm.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/88876fb4e412203452e57d1037a1341cf15ccc7b.1741128981.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/switch.S
arch/powerpc/kvm/book3s_hv_rmhandlers.S

index 608c0ce7cec67f7a7375470e7f4a009dd7463c42..59e3ee99db0e7c939043c9305aca33a6d252955c 100644 (file)
@@ -39,7 +39,6 @@ flush_branch_caches:
 
        // Flush the link stack
        .rept 64
-       ANNOTATE_INTRA_FUNCTION_CALL
        bl      .+4
        .endr
        b       1f
index ea7ad200b330fac141b16b5b2b76118ad57245e8..83f7504349d2d5880688eab5cbc938efc8a948ca 100644 (file)
@@ -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)