From: "Guo Ren (Alibaba DAMO Academy)" <guoren@xxxxxxxxxx> The rv64ilp32 abi supports native atomic64 operations. The atomic64_t is defined by "long long," so add "long long" into __native_word(). Signed-off-by: Guo Ren (Alibaba DAMO Academy) <guoren@xxxxxxxxxx> --- include/linux/compiler_types.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index 981cc3d7e3aa..6cf36a8e9570 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -505,9 +505,16 @@ struct ftrace_likely_data { default: (x))) /* Is this type a native word size -- useful for atomic operations */ +#ifdef CONFIG_64BIT +#define __native_word(t) \ + (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ + sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long) || \ + sizeof(t) == sizeof(long long)) +#else #define __native_word(t) \ (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) +#endif #ifdef __OPTIMIZE__ # define __compiletime_assert(condition, msg, prefix, suffix) \ -- 2.40.1