lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <461ad118-a56d-414e-a15e-5ffc10fed4c8@linux.ibm.com>
Date: Tue, 4 Mar 2025 21:14:04 +0530
From: Venkat Rao Bagalkote <venkat88@...ux.ibm.com>
To: Christophe Leroy <christophe.leroy@...roup.eu>,
        Madhavan Srinivasan <maddy@...ux.ibm.com>,
        linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org,
        Stephen Rothwell <sfr@...b.auug.org.au>,
        Michael Ellerman <mpe@...erman.id.au>
Subject: Re: Build Warnings at arch/powerpc/

Hello Christophe,


On 04/03/25 6:43 pm, Christophe Leroy wrote:
>
>
> Le 04/03/2025 à 14:03, Venkat Rao Bagalkote a écrit :
>> [Vous ne recevez pas souvent de courriers de venkat88@...ux.ibm.com. 
>> Découvrez pourquoi ceci est important à https://aka.ms/ 
>> LearnAboutSenderIdentification ]
>>
>> On 04/03/25 6:08 pm, Madhavan Srinivasan wrote:
>>>
>>> On 3/4/25 4:58 PM, Madhavan Srinivasan wrote:
>>>>
>>>> On 3/4/25 2:26 PM, Christophe Leroy wrote:
>>>>>
>>>>> Le 04/03/2025 à 07:13, Madhavan Srinivasan a écrit :
>>>>>>
>>>>>> On 3/4/25 10:42 AM, Venkat Rao Bagalkote wrote:
>>>>>>> Greetings!!
>>>>>>>
>>>>>>>
>>>>>>> Observing build warnings with linux-next and powerpc repo's. 
>>>>>>> Issue is currently not seen on mainline yet.
>>>>>>>
>>>>>>> PPC Repo: https://eur01.safelinks.protection.outlook.com/? 
>>>>>>> url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fpowerpc%2Flinux.git&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C6e17cc771a204b2998b508dd5b1cf2cf%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638766902127463526%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=f0ubC0BiY%2Fw2XLfXcX955JKhJ%2BRkUmTUVO4fV%2F%2F4v2Y%3D&reserved=0 
>>>>>>> merge branch
>>>>>>>
>>>>>>> PPC Kernel Version: 6.14.0-rc4-g1304f486dbf1
>>>>>>> next Repo: https://eur01.safelinks.protection.outlook.com/? 
>>>>>>> url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fnext%2Flinux-next.git&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C6e17cc771a204b2998b508dd5b1cf2cf%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638766902127477000%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=GSDtRBQ35owCeEpjMMCNiJw3iizdrUPQcHznop2BLeQ%3D&reserved=0 
>>>>>>> master branch
>>>>>>>
>>>>>>> next Kernel Version: 6.14.0-rc5-next-20250303
>>>>>>>
>>>>>>>
>>>>>>> On linux-next kernel issue got introduced b/w next-20250227 and 
>>>>>>> next-20250303
>>>>>>>
>>>>>>>
>>>>>>> Build Warnings:
>>>>>>>
>>>>>>> arch/powerpc/kvm/book3s_hv_rmhandlers.o: warning: objtool: 
>>>>>>> .text+0xe84: intra_function_call not a direct call
>>>>>>> arch/powerpc/crypto/ghashp8-ppc.o: warning: objtool: 
>>>>>>> .text+0x22c: unannotated intra-function call
>>>>>>> arch/powerpc/kernel/switch.o: warning: objtool: .text+0x4: 
>>>>>>> intra_function_call not a direct call
>>>>>>>
>>>>>>>
>>>>>> Can you please specific the compiler and compiler version you 
>>>>>> found this issue with
>>>>>>
>>>>> Can you also tell which defconfig you are using or provide your 
>>>>> .config
>>>>>
>>>>> It might also be helpfull if you can provide a disassembly of the 
>>>>> three file.o around the warned address.
>>>> I could recreate the issue with gcc 11.4.1 20231218 with today's 
>>>> linux-next (but could not recreate with gcc 14 or gcc 11.3.0)
>>>>
>>>> (20d5c66e1810 (HEAD -> master, tag: next-20250304, origin/master, 
>>>> origin/HEAD) Add linux-next specific files for 20250304)
>>>>
>>>> warning for one of the switch.S file :
>>>>
>>>>    CC      arch/powerpc/kernel/syscalls.o
>>>>    AS      arch/powerpc/kernel/switch.o
>>>> arch/powerpc/kernel/switch.o: warning: objtool: .text+0x4: 
>>>> intra_function_call not a direct call
>>> I guess this is becos, for bl .+4, we recently added in the 
>>> arch_decode_instruction (decode.c) to set the type as INSN_OTHER
>>>
>>>          case 18: /* b[l][a] */
>>>                  if (ins == 0x48000005)  /* bl .+4 */
>>>                          typ = INSN_OTHER;
>>>
>>> Which I think is the issue here, changing it to INSN_CALL from 
>>> INSN_OTHER fixes the warning
>>>
>>> diff --git a/tools/objtool/arch/powerpc/decode.c 
>>> b/tools/objtool/arch/ powerpc/decode.c
>>> index 26d5050424a9..ffd63a61a585 100644
>>> --- a/tools/objtool/arch/powerpc/decode.c
>>> +++ b/tools/objtool/arch/powerpc/decode.c
>>> @@ -56,7 +56,7 @@ int arch_decode_instruction(struct objtool_file 
>>> *file, const struct section *sec
>>>          switch (opcode) {
>>>          case 18: /* b[l][a] */
>>>                  if (ins == 0x48000005)  /* bl .+4 */
>>> -                       typ = INSN_OTHER;
>>> +                       typ = INSN_CALL;
>>>                  else if (ins & 1)       /* bl[a] */
>>>                          typ = INSN_CALL;
>>>                  else            /* b[a] */
>>>
>>>
>>> Maddy
>>>
>> Maddy,
>>
>> I changed the code manually and gave it a try. The Proposed fix,
>> partially fixes the issue. It gets rid of two of the warnings, but below
>> warning still persists.
>
> It fixes the issue for you but will reintroduce the issue with clang.
>
> The real fix is to remove the ANNOTATE_INTRA_FUNCTION_CALL in:
>
> arch/powerpc/kernel/switch.S:42: ANNOTATE_INTRA_FUNCTION_CALL
> arch/powerpc/kvm/book3s_hv_rmhandlers.S:1527: 
> ANNOTATE_INTRA_FUNCTION_CALL
> arch/powerpc/kvm/book3s_hv_rmhandlers.S:1534: 
> ANNOTATE_INTRA_FUNCTION_CALL


Removed ANNOTATE_INTRA_FUNCTION_CALL in above mentioned line, and it 
fixes couple of warnings. But below warning still persists.

arch/powerpc/crypto/ghashp8-ppc.o: warning: objtool: .text+0x22c: 
unannotated intra-function call.

>
> Can you give it a try ?
>
> For the last one, can you provide an assembly dump ? You get it with 
> "objtool -dr arch/powerpc/crypto/ghashp8-ppc.o"


Assembly dump:

objdump -dr arch/powerpc/crypto/ghashp8-ppc.o

arch/powerpc/crypto/ghashp8-ppc.o:     file format elf64-powerpcle


Disassembly of section .text:

0000000000000000 <gcm_init_p8>:
    0:    f0 ff 00 3c     lis     r0,-16
    4:    10 00 00 39     li      r8,16
    8:    ff ff 80 39     li      r12,-1
    c:    20 00 20 39     li      r9,32
   10:    78 03 00 7c     mr      r0,r0
   14:    30 00 40 39     li      r10,48
   18:    99 26 20 7d     lxvd2x  vs41,0,r4
   1c:    78 3a e7 7c     xor     r7,r7,r7
   20:    08 00 e7 38     addi    r7,r7,8
   24:    4c 38 a0 7c     lvsr    v5,0,r7
   28:    0c 03 cf 10     vspltisb v6,15
   2c:    c4 34 a5 10     vxor    v5,v5,v6
   30:    6b 49 29 11     vperm   v9,v9,v9,v5
   34:    0c 03 10 11     vspltisb v8,-16
   38:    0c 03 a1 10     vspltisb v5,1
   3c:    00 40 08 11     vaddubm v8,v8,v8
   40:    c4 24 84 10     vxor    v4,v4,v4
   44:    84 2c 08 11     vor     v8,v8,v5
   48:    ec 23 08 11     vsldoi  v8,v8,v4,15
   4c:    6c 28 c4 10     vsldoi  v6,v4,v5,1
   50:    00 40 08 11     vaddubm v8,v8,v8
   54:    0c 03 e7 10     vspltisb v7,7
   58:    84 34 08 11     vor     v8,v8,v6
   5c:    0c 4a c0 10     vspltb  v6,v9,0
   60:    c4 29 29 11     vsl     v9,v9,v5
   64:    04 3b c6 10     vsrab   v6,v6,v7
   68:    04 44 c6 10     vand    v6,v6,v8
   6c:    c4 34 29 11     vxor    v9,v9,v6
   70:    2c 4a 29 11     vsldoi  v9,v9,v9,8
   74:    2c 42 04 11     vsldoi  v8,v4,v8,8
   78:    2c 4a 64 11     vsldoi  v11,v4,v9,8
   7c:    2c 22 49 11     vsldoi  v10,v9,v4,8
   80:    99 1f 00 7d     stxvd2x vs40,0,r3
   84:    99 1f 68 7d     stxvd2x vs43,r8,r3
   88:    99 1f 29 7d     stxvd2x vs41,r9,r3
   8c:    99 1f 4a 7d     stxvd2x vs42,r10,r3
   90:    78 63 8c 7d     mr      r12,r12
   94:    20 00 80 4e     blr
   98:    00 00 00 00     .long 0x0
   9c:    00 0c 14 00     .long 0x140c00
   a0:    00 00 02 00     .long 0x20000
   a4:    00 00 00 00     .long 0x0

00000000000000a8 <gcm_gmult_p8>:
   a8:    f8 ff 00 3c     lis     r0,-8
   ac:    10 00 00 39     li      r8,16
   b0:    ff ff 80 39     li      r12,-1
   b4:    20 00 20 39     li      r9,32
   b8:    78 03 00 7c     mr      r0,r0
   bc:    30 00 40 39     li      r10,48
   c0:    99 1e 60 7c     lxvd2x  vs35,0,r3
   c4:    99 26 68 7d     lxvd2x  vs43,r8,r4
   c8:    0c 00 80 7d     lvsl    v12,0,r0
   cc:    99 26 29 7d     lxvd2x  vs41,r9,r4
   d0:    0c 03 a7 10     vspltisb v5,7
   d4:    99 26 4a 7d     lxvd2x  vs42,r10,r4
   d8:    c4 2c 8c 11     vxor    v12,v12,v5
   dc:    99 26 00 7d     lxvd2x  vs40,0,r4
   e0:    2b 1b 63 10     vperm   v3,v3,v3,v12
   e4:    c4 24 84 10     vxor    v4,v4,v4
   e8:    c8 5c 03 10     vpmsumd v0,v3,v11
   ec:    c8 4c 23 10     vpmsumd v1,v3,v9
   f0:    c8 54 43 10     vpmsumd v2,v3,v10
   f4:    c8 44 e0 10     vpmsumd v7,v0,v8
   f8:    2c 22 a1 10     vsldoi  v5,v1,v4,8
   fc:    2c 0a c4 10     vsldoi  v6,v4,v1,8
  100:    c4 2c 00 10     vxor    v0,v0,v5
  104:    c4 34 42 10     vxor    v2,v2,v6
  108:    2c 02 00 10     vsldoi  v0,v0,v0,8
  10c:    c4 3c 00 10     vxor    v0,v0,v7
  110:    2c 02 c0 10     vsldoi  v6,v0,v0,8
  114:    c8 44 00 10     vpmsumd v0,v0,v8
  118:    c4 14 c6 10     vxor    v6,v6,v2
  11c:    c4 34 00 10     vxor    v0,v0,v6
  120:    2b 03 00 10     vperm   v0,v0,v0,v12
  124:    99 1f 00 7c     stxvd2x vs32,0,r3
  128:    78 63 8c 7d     mr      r12,r12
  12c:    20 00 80 4e     blr
  130:    00 00 00 00     .long 0x0
  134:    00 0c 14 00     .long 0x140c00
  138:    00 00 02 00     .long 0x20000
  13c:    00 00 00 00     .long 0x0

0000000000000140 <gcm_ghash_p8>:
  140:    f8 ff 00 3c     lis     r0,-8
  144:    10 00 00 39     li      r8,16
  148:    ff ff 80 39     li      r12,-1
  14c:    20 00 20 39     li      r9,32
  150:    78 03 00 7c     mr      r0,r0
  154:    30 00 40 39     li      r10,48
  158:    99 1e 00 7c     lxvd2x  vs32,0,r3
  15c:    99 26 68 7d     lxvd2x  vs43,r8,r4
  160:    0c 00 80 7d     lvsl    v12,0,r0
  164:    99 26 29 7d     lxvd2x  vs41,r9,r4
  168:    0c 03 a7 10     vspltisb v5,7
  16c:    99 26 4a 7d     lxvd2x  vs42,r10,r4
  170:    c4 2c 8c 11     vxor    v12,v12,v5
  174:    99 26 00 7d     lxvd2x  vs40,0,r4
  178:    2b 03 00 10     vperm   v0,v0,v0,v12
  17c:    c4 24 84 10     vxor    v4,v4,v4
  180:    99 2e 60 7c     lxvd2x  vs35,0,r5
  184:    10 00 a5 38     addi    r5,r5,16
  188:    f0 ff c6 38     addi    r6,r6,-16
  18c:    2b 1b 63 10     vperm   v3,v3,v3,v12
  190:    c4 04 63 10     vxor    v3,v3,v0
  194:    0c 00 00 48     b       1a0 <gcm_ghash_p8+0x60>
  198:    00 00 00 60     nop
  19c:    00 00 00 60     nop
  1a0:    f0 ff c6 30     addic   r6,r6,-16
  1a4:    c8 5c 03 10     vpmsumd v0,v3,v11
  1a8:    11 01 00 7c     subfe.  r0,r0,r0
  1ac:    c8 4c 23 10     vpmsumd v1,v3,v9
  1b0:    38 30 00 7c     and     r0,r0,r6
  1b4:    c8 54 43 10     vpmsumd v2,v3,v10
  1b8:    14 02 a5 7c     add     r5,r5,r0
  1bc:    c8 44 e0 10     vpmsumd v7,v0,v8
  1c0:    2c 22 a1 10     vsldoi  v5,v1,v4,8
  1c4:    2c 0a c4 10     vsldoi  v6,v4,v1,8
  1c8:    c4 2c 00 10     vxor    v0,v0,v5
  1cc:    c4 34 42 10     vxor    v2,v2,v6
  1d0:    2c 02 00 10     vsldoi  v0,v0,v0,8
  1d4:    c4 3c 00 10     vxor    v0,v0,v7
  1d8:    99 2e 60 7c     lxvd2x  vs35,0,r5
  1dc:    10 00 a5 38     addi    r5,r5,16
  1e0:    2c 02 c0 10     vsldoi  v6,v0,v0,8
  1e4:    c8 44 00 10     vpmsumd v0,v0,v8
  1e8:    2b 1b 63 10     vperm   v3,v3,v3,v12
  1ec:    c4 14 c6 10     vxor    v6,v6,v2
  1f0:    c4 34 63 10     vxor    v3,v3,v6
  1f4:    c4 04 63 10     vxor    v3,v3,v0
  1f8:    a8 ff 82 41     beq     1a0 <gcm_ghash_p8+0x60>
  1fc:    c4 34 00 10     vxor    v0,v0,v6
  200:    2b 03 00 10     vperm   v0,v0,v0,v12
  204:    99 1f 00 7c     stxvd2x vs32,0,r3
  208:    78 63 8c 7d     mr      r12,r12
  20c:    20 00 80 4e     blr
  210:    00 00 00 00     .long 0x0
  214:    00 0c 14 00     .long 0x140c00
  218:    00 00 04 00     .long 0x40000
  21c:    00 00 00 00     .long 0x0
  220:    47 48 41 53     rlwimi. r1,r26,9,1,3
  224:    48 20 66 6f     xoris   r6,r27,8264
  228:    72 20 50 6f     xoris   r16,r26,8306
  22c:    77 65 72 49     bla     1726574 <gcm_ghash_p8+0x1726434>
  230:    53 41 20 32     addic   r17,r0,16723
  234:    2e 30 37 2c     cmpdi   r23,12334
  238:    20 43 52 59     rlmi    r18,r10,r8,12,16
  23c:    50 54 4f 47     .long 0x474f5450
  240:    41 4d 53 20     subfic  r2,r19,19777
  244:    62 79 20 3c     lis     r1,31074
  248:    61 70 70 72     andi.   r16,r19,28769
  24c:    6f 40 6f 70     andi.   r15,r3,16495
  250:    65 6e 73 73     andi.   r19,r27,28261
  254:    6c 2e 6f 72     andi.   r15,r19,11884
  258:    67 3e 00 00     .long 0x3e67

>
> Also can you tell which defconfig you use or provide your .config if 
> not standard one ?


Attached is .config file used.

>
> Christophe
>
>>
>> arch/powerpc/crypto/ghashp8-ppc.o: warning: objtool: .text+0x22c:
>> unannotated intra-function call
>>
>>>>    CC      arch/powerpc/kernel/irq.o
>>>>    CC      arch/powerpc/kernel/align.o
>>>>    CC      arch/powerpc/kernel/signal_64.o
>>>>
>>>> Objdump of switch.o:
>>>> arch/powerpc/kernel/switch.o:     file format elf64-powerpcle
>>>>
>>>> Disassembly of section .text:
>>>>
>>>> 0000000000000000 <flush_branch_caches>:
>>>>         0:   a6 02 28 7d     mflr    r9
>>>>         4:   05 00 00 48     bl      8 <flush_branch_caches+0x8>
>>>>         8:   05 00 00 48     bl      c <flush_branch_caches+0xc>
>>>>         c:   05 00 00 48     bl      10 <flush_branch_caches+0x10>
>>>>        10:   05 00 00 48     bl      14 <flush_branch_caches+0x14>
>>>>        14:   05 00 00 48     bl      18 <flush_branch_caches+0x18>
>>>>        18:   05 00 00 48     bl      1c <flush_branch_caches+0x1c>
>>>>        1c:   05 00 00 48     bl      20 <flush_branch_caches+0x20>
>>>>        20:   05 00 00 48     bl      24 <flush_branch_caches+0x24>
>>>>        24:   05 00 00 48     bl      28 <flush_branch_caches+0x28>
>>>>        28:   05 00 00 48     bl      2c <flush_branch_caches+0x2c>
>>>>
>>>>
>>>> arch/powerpc/kernel/switch.S failing src section:
>>>>
>>>> .balign 32
>>>> .global flush_branch_caches
>>>> flush_branch_caches:
>>>>          /* Save LR into r9 */
>>>>          mflr    r9
>>>>
>>>>          // Flush the link stack
>>>>          .rept 64
>>>>          ANNOTATE_INTRA_FUNCTION_CALL
>>>>          bl      .+4
>>>>          .endr
>>>>          b       1f
>>>>          nops    6
>>>>
>>>> Maddy
>>>>
>>>>
>>>>> Christophe
>>>>
>>>
>> Regards,
>>
>> Venkat.
>>
>
>
View attachment "ZZ-VM-config" of type "text/plain" (170342 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ