Re: [PATCH v9 03/10] asm/rwonce: Introduce [READ|WRITE]_ONCE() support for __int128

From: Arnd Bergmann
Date: Wed Nov 06 2024 - 03:56:50 EST


On Tue, Nov 5, 2024, at 13:30, Joerg Roedel wrote:
> 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
>

It also needs an update to the comment about why this is safe:

>> +++ 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().")

As far as I can tell, 128-but words don't get stored atomically on
any architecture, so this seems wrong, because it would remove
the assertion on someone incorrectly using WRITE_ONCE() on a
128-bit variable.

Arnd