• Ard Biesheuvel's avatar
    crypto: arm/aes-ce - build for v8 architecture explicitly · 3aa6d4ab
    Ard Biesheuvel authored
    The NEON/Crypto Extensions based AES implementation for 32-bit ARM
    can be built in a kernel that targets ARMv6 CPUs and higher, even
    though the actual code will not be able to run on that generation,
    but it allows for a portable image to be generated that can will
    use the special instructions only when they are available.
    
    Since those instructions are part of a FPU profile rather than a
    CPU profile, we don't override the architecture in the assembler
    code, and most of the scalar code is simple enough to be ARMv6
    compatible. However, that changes with commit c61b1607,
    which introduces calls to the movw/movt instructions, which are
    v7+ only.
    
    So override the architecture in the .S file to armv8-a, which
    matches the architecture specification in the crypto-neon-fp-armv8
    FPU specificier that we already using. Note that using armv7-a
    here may trigger an issue with the upcoming Clang 10 release,
    which no longer permits .arch/.fpu combinations it views as
    incompatible.
    Reported-by: default avatarkbuild test robot <lkp@intel.com>
    Fixes: c61b1607 ("crypto: arm/aes-ce - implement ciphertext stealing ...")
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    3aa6d4ab
aes-ce-core.S 14.6 KB