Re: [PATCH v9 03/10] asm/rwonce: Introduce [READ|WRITE]_ONCE() support for __int128
From: Joerg Roedel
Date: Tue Nov 05 2024 - 07:30:25 EST
On Fri, Nov 01, 2024 at 04:22:57PM +0000, Suravee Suthikulpanit wrote:
> include/asm-generic/rwonce.h | 2 +-
> include/linux/compiler_types.h | 8 +++++++-
> 2 files changed, 8 insertions(+), 2 deletions(-)
This patch needs Cc:
Arnd Bergmann <arnd@xxxxxxxx>
linux-arch@xxxxxxxxxxxxxxx
>
> diff --git a/include/asm-generic/rwonce.h b/include/asm-generic/rwonce.h
> index 8d0a6280e982..8bf942ad5ef3 100644
> --- a/include/asm-generic/rwonce.h
> +++ b/include/asm-generic/rwonce.h
> @@ -33,7 +33,7 @@
> * (e.g. a virtual address) and a strong prevailing wind.
> */
> #define compiletime_assert_rwonce_type(t) \
> - compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
> + compiletime_assert(__native_word(t) || sizeof(t) == sizeof(__dword_type), \
> "Unsupported access size for {READ,WRITE}_ONCE().")
>
> /*
> diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h
> index 1a957ea2f4fe..54b56ae25db7 100644
> --- a/include/linux/compiler_types.h
> +++ b/include/linux/compiler_types.h
> @@ -469,6 +469,12 @@ struct ftrace_likely_data {
> unsigned type: (unsigned type)0, \
> signed type: (signed type)0
>
> +#ifdef __SIZEOF_INT128__
> +#define __dword_type __int128
> +#else
> +#define __dword_type long long
> +#endif
> +
> #define __unqual_scalar_typeof(x) typeof( \
> _Generic((x), \
> char: (char)0, \
> @@ -476,7 +482,7 @@ struct ftrace_likely_data {
> __scalar_type_to_expr_cases(short), \
> __scalar_type_to_expr_cases(int), \
> __scalar_type_to_expr_cases(long), \
> - __scalar_type_to_expr_cases(long long), \
> + __scalar_type_to_expr_cases(__dword_type), \
> default: (x)))
>
> /* Is this type a native word size -- useful for atomic operations */
> --
> 2.34.1
>