On Tue, Sep 15, 2020 at 11:14 PM Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > Remove some occurrences of ADRL in the SHA NEON code adopted from the > OpenSSL project. > > I will leave it to the Clang folks to decide whether this needs to be > backported and how far, but a Cc stable seems reasonable here. > > Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > Cc: Stefan Agner <stefan@xxxxxxxx> > Cc: Peter Smith <Peter.Smith@xxxxxxx> Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> Thanks Ard: compile+boot tested each combination of: [gcc, clang]x[defconfig, defconfig+CONFIG_THUMB2_KERNEL=y]. Now, if I additionally apply: 1. this series 2. the adr_l series: https://lore.kernel.org/linux-arm-kernel/20200914095706.3985-1-ardb@xxxxxxxxxx/ 3. unrelated fix for -next #1: https://lore.kernel.org/lkml/20200916200255.1382086-1-ndesaulniers@xxxxxxxxxx/ 4. unrelated fix for -next #2: https://lore.kernel.org/linux-mm/20200917001934.2793370-1-ndesaulniers@xxxxxxxxxx/ 5. small fixup to 01/12 from #2: https://lore.kernel.org/linux-arm-kernel/CAMj1kXFmF_24d-7W8AWTJR-PCcja7bUdHhYKptGQmsV4vNp=sA@xxxxxxxxxxxxxx/ 6. vfp fixup for thumb+gcc: https://lore.kernel.org/linux-arm-kernel/CAMj1kXHEpPc0MSoMrCxEkyb44AkLM2NJJGtOXLpr6kxBHS0vfA@xxxxxxxxxxxxxx/ 7. disable CONFIG_IWMMXT https://github.com/ClangBuiltLinux/linux/issues/975 Then build with Clang's integrated assembler: $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LLVM=1 LLVM_IAS=1 -j71 I see a bunch of warnings (https://github.com/ClangBuiltLinux/linux/issues/858) which we will fix, but I am able to build and boot. (CONFIG_THUMB2_KERNEL=y has many more issues, so I didn't pursue that further). Either way, these two adrl patches go a long way towards getting Clang to assemble an ARCH=arm kernel; thank you for all of the work that went into them. One thing I noticed was that if I grep for `adrl` with all of the above applied within arch/arm, I do still see two more instances: crypto/sha256-armv4.pl 609: adrl $Ktbl,K256 crypto/sha256-core.S_shipped 2679: adrl r3,K256 Maybe those can be fixed up in patch 01/02 of this series for a v2? I guess in this cover letter, you did specify *some occurrences of ADRL*. It looks like those are guarded by 605 # ifdef __thumb2__ ... 608 # else 609 adrl $Ktbl,K256 So are these always built as thumb2? > > Ard Biesheuvel (2): > crypto: arm/sha256-neon - avoid ADRL pseudo instruction > crypto: arm/sha512-neon - avoid ADRL pseudo instruction > > arch/arm/crypto/sha256-armv4.pl | 4 ++-- > arch/arm/crypto/sha256-core.S_shipped | 4 ++-- > arch/arm/crypto/sha512-armv4.pl | 4 ++-- > arch/arm/crypto/sha512-core.S_shipped | 4 ++-- > 4 files changed, 8 insertions(+), 8 deletions(-) > > -- > 2.17.1 > -- Thanks, ~Nick Desaulniers