Messages in this thread | | | From | Andrea Parri <> | Subject | [PATCH 0/2] Prevent evaluation of WRITE_ONCE() | Date | Fri, 24 May 2019 12:35:34 +0200 |
| |
Hi all,
This all started when we realized that
atomic64_t v; ... typeof(v.counter) my_val = atomic64_set(&v, VAL);
is a valid assignment on some architectures, but not on others [1]: in particular, the assignment is valid on all architectures #define -ing their atomic64_set() macro to WRITE_ONCE() (which is currently evaluated).
Mark suggested to clean up all non-portable users of atomic*_set(), and to prevent WRITE_ONCE() from being evaluated [2]; this resulted in this first attempt/patchset based on Mark's atomics/type-cleanup branch [3].
Cheers Andrea
[1] https://lkml.kernel.org/r/20190523083013.GA4616@andrea [2] https://lkml.kernel.org/r/20190523141851.GA7523@lakrids.cambridge.arm.com [3] git://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git atomics/type-cleanup
Cc: Arnd Bergmann <arnd@arndb.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jorgen Hansen <jhansen@vmware.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Will Deacon <will.deacon@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: "Paul E. McKenney" <paulmck@linux.ibm.com>
Andrea Parri (2): vmw_vmci: Clean up uses of atomic*_set() compiler: Prevent evaluation of WRITE_ONCE()
include/linux/compiler.h | 5 ++--- include/linux/vmw_vmci_defs.h | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-)
-- 2.7.4
| |