Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1198485
| From | Michael Ellerman <mpe@ellerman.id.au> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH v2] arch: use WRITE_ONCE/READ_ONCE in smp_store_release/smp_load_acquire |
| Date | 2015-08-03 03:50 +0200 |
| Message-ID | <pTd33-4V9-5@gated-at.bofh.it> (permalink) |
| References | <pT3dn-7MT-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Sun, 2015-08-02 at 17:11 +0200, Andrey Konovalov wrote:
> Replace ACCESS_ONCE() macro in smp_store_release() and smp_load_acquire()
> with WRITE_ONCE() and READ_ONCE() on x86, arm, arm64, ia64, metag, mips,
> powerpc, s390, sparc and asm-generic since ACCESS_ONCE does not work
> reliably on non-scalar types.
.. and there are no restrictions on the argument to smp_load_acquire(), so it
may be a non-scalar type.
Though from a quick grep it looks like no one is doing that at the moment?
> WRITE_ONCE() and READ_ONCE() were introduced in the commits 230fa253df63
> ("kernel: Provide READ_ONCE and ASSIGN_ONCE") and 43239cbe79fc ("kernel:
> Change ASSIGN_ONCE(val, x) to WRITE_ONCE(x, val)").
>
> Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
> ---
> Changed in v2:
> - Other archs besides x86.
>
> arch/powerpc/include/asm/barrier.h | 4 ++--
> diff --git a/arch/powerpc/include/asm/barrier.h b/arch/powerpc/include/asm/barrier.h
> index 51ccc72..0eca6ef 100644
> --- a/arch/powerpc/include/asm/barrier.h
> +++ b/arch/powerpc/include/asm/barrier.h
> @@ -76,12 +76,12 @@
> do { \
> compiletime_assert_atomic_type(*p); \
> smp_lwsync(); \
> - ACCESS_ONCE(*p) = (v); \
> + WRITE_ONCE(*p, v); \
> } while (0)
>
> #define smp_load_acquire(p) \
> ({ \
> - typeof(*p) ___p1 = ACCESS_ONCE(*p); \
> + typeof(*p) ___p1 = READ_ONCE(*p); \
> compiletime_assert_atomic_type(*p); \
> smp_lwsync(); \
> ___p1; \
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2] arch: use WRITE_ONCE/READ_ONCE in smp_store_release/smp_load_acquire Andrey Konovalov <andreyknvl@google.com> - 2015-08-02 17:20 +0200 Re: [PATCH v2] arch: use WRITE_ONCE/READ_ONCE in smp_store_release/smp_load_acquire Peter Zijlstra <peterz@infradead.org> - 2015-08-02 18:10 +0200 Re: [PATCH v2] arch: use WRITE_ONCE/READ_ONCE in smp_store_release/smp_load_acquire Michael Ellerman <mpe@ellerman.id.au> - 2015-08-03 03:50 +0200 Re: [PATCH v2] arch: use WRITE_ONCE/READ_ONCE in smp_store_release/smp_load_acquire Davidlohr Bueso <dave@stgolabs.net> - 2015-08-03 03:50 +0200 Re: [PATCH v2] arch: use WRITE_ONCE/READ_ONCE in smp_store_release/smp_load_acquire Ralf Baechle <ralf@linux-mips.org> - 2015-08-03 08:10 +0200 [tip:locking/core] locking, arch: use WRITE_ONCE()/READ_ONCE() in smp_store_release()/smp_load_acquire() tip-bot for Andrey Konovalov <tipbot@zytor.com> - 2015-08-03 19:10 +0200
csiph-web