On 11 April 2015 at 10:48, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Saturday 11 April 2015 09:35:15 Ard Biesheuvel wrote: >> On 10 April 2015 at 22:23, Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote: >> > >> >> On 10 apr. 2015, at 22:08, Arnd Bergmann <arnd@xxxxxxxx> wrote: >> >> >> >>> On Friday 10 April 2015 16:29:08 Ard Biesheuvel wrote: >> >>> +#if __ARM_MAX_ARCH__>=7 >> >>> +.arch armv7-a >> >>> +.fpu neon >> >>> + >> >> >> >> This will cause a build failure on an ARMv7-M build, which is incompatible >> >> with .arch armv7-a and .fpu neon. >> >> >> > >> > The neon part depends on CONFIG_KERNEL_MODE_NEON, which would never be set for that platform, I suppose >> >> On second thought, that is not entirely true, but I still don't think >> there is problem here: >> the .arch/.fpu declarations are understood perfectly fine by GAS when >> targeting ARMv7-M. Only, it will emit code that is incompatible with >> it. However, this code is invoked at runtime only if a NEON unit has >> been detected, so it will just be ignored on ARMv7-M > > Sorry, I should have collected my findings better when replying to your > patch. What I remembered was that I saw a problem in this area in linux-next > with randconfig builds, but I did not notice that it was for a different > file, and I had not double-checked that patch yet in order to send it > out. > > See below for the patch I'm currently using for my randconfig builder. > Before you apply this, please check again which files are affected, as > it's possible that there are other modules that suffer from the same > problem. > > Arnd > > 8<----------- > Subject: [PATCH] ARM: crypto: avoid sha256 code on ARMv7-M > > The sha256 assembly implementation can deal with all architecture levels > from ARMv4 to ARMv7-A, but not with ARMv7-M. Enabling it in an > ARMv7-M kernel results in this build failure: > > arm-linux-gnueabi-ld: error: arch/arm/crypto/sha256_glue.o: Conflicting architecture profiles M/A > arm-linux-gnueabi-ld: failed to merge target specific data of file arch/arm/crypto/sha256_glue.o > > This adds a Kconfig dependency to prevent the code from being disabled ... enabled? > for ARMv7-M. > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > > diff --git a/arch/arm/crypto/Kconfig b/arch/arm/crypto/Kconfig > index 458729d2ce22..76463da22f81 100644 > --- a/arch/arm/crypto/Kconfig > +++ b/arch/arm/crypto/Kconfig > @@ -49,6 +49,7 @@ config CRYPTO_SHA2_ARM_CE > config CRYPTO_SHA256_ARM > tristate "SHA-224/256 digest algorithm (ARM-asm and NEON)" > select CRYPTO_HASH > + depends on !CPU_V7M > help > SHA-256 secure hash standard (DFIPS 180-2) implemented > using optimized ARM assembler and NEON, when available. > @Herbert: could you please apply this onto cryptodev before sending out your pull request for v4.1? And please disregard $subject, I will post a v3 with a similar 'depends on' added (unless you're ok to add it yourself) Thanks, Ard. -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html