Re: [PATCH v3 00/12] Rework READ_ONCE() to improve codegen

From: Christian Borntraeger
Date: Thu Apr 16 2020 - 08:30:59 EST



On 15.04.20 18:52, Will Deacon wrote:
> Hi everyone,
>
> This is version three of the patches I previously posted for improving
> the code generation of READ_ONCE() and moving the minimum GCC version
> to 4.8:
>
> RFC: https://lore.kernel.org/lkml/20200110165636.28035-1-will@xxxxxxxxxx
> v2: https://lore.kernel.org/lkml/20200123153341.19947-1-will@xxxxxxxxxx
>
> Although v2 was queued up by Peter in -tip, it was found to break the
> build for m68k and sparc32. We fixed m68k during the merge window and
> I've since posted patches to fix sparc32 here:
>
> https://lore.kernel.org/lkml/20200414214011.2699-1-will@xxxxxxxxxx
>
> This series is a refresh on top of 5.7-rc1, the main changes being:
>
> * Fix another issue where 'const' is assigned to non-const via
> WRITE_ONCE(), this time in the tls code
>
> * Fix READ_ONCE_NOCHECK() abuse in arm64 checksum code
>
> * Added Reviewed-bys and Acks from v2
>
> Hopefully this can be considered for 5.8, along with the sparc32 changes.
>
> Cheers,
>
> Will
>
> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx>
> Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> Cc: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx>
> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>

I gave this series a try and s390 seems to compile fine and it also seems to
properly compile the the ipte_unlock_siif function in arch/s390/kvm/gaccess.c
This function was miscompiled with gcc4.6 and the trigger for replacing
ACCESS_ONCE with READ_ONCE