<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix"><font face="monospace">On 3/5/25 4:30
        AM, Christophe Leroy wrote:</font><br>
    </div>
    <blockquote type="cite"
cite="mid:88876fb4e412203452e57d1037a1341cf15ccc7b.1741128981.git.christophe.leroy@csgroup.eu">
      <pre class="moz-quote-pre" wrap="">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 <a class="moz-txt-link-rfc2396E" href="mailto:venkat88@linux.ibm.com"><venkat88@linux.ibm.com></a>
Closes: <a class="moz-txt-link-freetext" href="https://lore.kernel.org/all/8c4c3fc2-2bd7-4148-af68-2f504d6119e0@linux.ibm.com">https://lore.kernel.org/all/8c4c3fc2-2bd7-4148-af68-2f504d6119e0@linux.ibm.com</a>
Fixes: bb7f054f4de2 ("objtool/powerpc: Add support for decoding all types of uncond branches")
Signed-off-by: Christophe Leroy <a class="moz-txt-link-rfc2396E" href="mailto:christophe.leroy@csgroup.eu"><christophe.leroy@csgroup.eu></a>
---
 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)</pre>
    </blockquote>
    <font face="monospace">The warnings are now fixed and the patch
      looks good to me.<br>
      <br>
      Reviewed-by: Sathvika Vasireddy <a class="moz-txt-link-rfc2396E" href="mailto:sv@linux.ibm.com"><sv@linux.ibm.com></a><br>
      <br>
      Thanks,<br>
      Sathvika</font><span style="white-space: pre-wrap">
</span>
  </body>
</html>