Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: sm4 - Do not change section of ck and sbox

When building with clang and GNU as, there is a warning about ignored
changed section attributes:

/tmp/sm4-c916c8.s: Assembler messages:
/tmp/sm4-c916c8.s:677: Warning: ignoring changed section attributes for
.data..cacheline_aligned

"static const" places the data in .rodata but __cacheline_aligned has
the section attribute to place it in .data..cacheline_aligned, in
addition to the aligned attribute.

To keep the alignment but avoid attempting to change sections, use the
____cacheline_aligned attribute, which is just the aligned attribute.

Fixes: 2b31277af577 ("crypto: sm4 - create SM4 library based on sm4 generic code")
Link: https://github.com/ClangBuiltLinux/linux/issues/1441
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Nathan Chancellor and committed by
Herbert Xu
4a7e1e5f d5e93b33

+2 -2
+2 -2
lib/crypto/sm4.c
··· 15 15 0xa3b1bac6, 0x56aa3350, 0x677d9197, 0xb27022dc 16 16 }; 17 17 18 - static const u32 __cacheline_aligned ck[32] = { 18 + static const u32 ____cacheline_aligned ck[32] = { 19 19 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269, 20 20 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9, 21 21 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249, ··· 26 26 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279 27 27 }; 28 28 29 - static const u8 __cacheline_aligned sbox[256] = { 29 + static const u8 ____cacheline_aligned sbox[256] = { 30 30 0xd6, 0x90, 0xe9, 0xfe, 0xcc, 0xe1, 0x3d, 0xb7, 31 31 0x16, 0xb6, 0x14, 0xc2, 0x28, 0xfb, 0x2c, 0x05, 32 32 0x2b, 0x67, 0x9a, 0x76, 0x2a, 0xbe, 0x04, 0xc3,