crypto: arm64/sha2-ce - move the round constant table to .rodata section
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 10 Jan 2018 12:11:41 +0000 (12:11 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 18 Jan 2018 12:00:32 +0000 (23:00 +1100)
Move the SHA2 round constant table to the .rodata section where it is
safe from being exploited by speculative execution.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/arm64/crypto/sha2-ce-core.S

index 679c6c002f4fbebffd7a0256602ce30e39ff86cb..4c3c89b812ce630d9e3c73b4bdd2e3e61dadc395 100644 (file)
@@ -53,6 +53,7 @@
        /*
         * The SHA-256 round constants
         */
+       .section        ".rodata", "a"
        .align          4
 .Lsha2_rcon:
        .word           0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5
         * void sha2_ce_transform(struct sha256_ce_state *sst, u8 const *src,
         *                        int blocks)
         */
+       .text
 ENTRY(sha2_ce_transform)
        /* load round constants */
-       adr             x8, .Lsha2_rcon
+       adr_l           x8, .Lsha2_rcon
        ld1             { v0.4s- v3.4s}, [x8], #64
        ld1             { v4.4s- v7.4s}, [x8], #64
        ld1             { v8.4s-v11.4s}, [x8], #64