All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] READ_ONCE: Fix comment describing 2x32-bit atomicity
@ 2020-05-12  9:01 Will Deacon
  2020-05-13 12:22 ` [tip: locking/kcsan] " tip-bot2 for Will Deacon
  0 siblings, 1 reply; 2+ messages in thread
From: Will Deacon @ 2020-05-12  9:01 UTC (permalink / raw)
  To: linux-kernel; +Cc: Will Deacon, Thomas Gleixner, Peter Zijlstra, Jann Horn

READ_ONCE() permits 64-bit accesses on 32-bit architectures, since this
crops up in a few places and is generally harmless because either the
upper bits are always zero (e.g. for a virtual address or 32-bit time_t)
or the architecture provides 64-bit atomicity anyway.

Update the corresponding comment above compiletime_assert_rwonce_type(),
which incorrectly states that 32-bit x86 provides 64-bit atomicity, and
instead reference 32-bit Armv7 with LPAE.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Reported-by: Jann Horn <jannh@google.com>
Signed-off-by: Will Deacon <will@kernel.org>
---

Applies on top of the READ_ONCE() pile I sent last night (v5).

 include/linux/compiler.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 741c93c62ecf..e24cc3a2bc3e 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -384,9 +384,9 @@ static inline void *offset_to_ptr(const int *off)
 
 /*
  * Yes, this permits 64-bit accesses on 32-bit architectures. These will
- * actually be atomic in many cases (namely x86), but for others we rely on
- * the access being split into 2x32-bit accesses for a 32-bit quantity (e.g.
- * a virtual address) and a strong prevailing wind.
+ * actually be atomic in some cases (namely Armv7 + LPAE), but for others we
+ * rely on the access being split into 2x32-bit accesses for a 32-bit quantity
+ * (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),	\
-- 
2.26.2.645.ge9eca65c58-goog


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [tip: locking/kcsan] READ_ONCE: Fix comment describing 2x32-bit atomicity
  2020-05-12  9:01 [PATCH] READ_ONCE: Fix comment describing 2x32-bit atomicity Will Deacon
@ 2020-05-13 12:22 ` tip-bot2 for Will Deacon
  0 siblings, 0 replies; 2+ messages in thread
From: tip-bot2 for Will Deacon @ 2020-05-13 12:22 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: Jann Horn, Will Deacon, Thomas Gleixner, x86, LKML

The following commit has been merged into the locking/kcsan branch of tip:

Commit-ID:     ffed638b6a2180da8fd002a46632d746af72b299
Gitweb:        https://git.kernel.org/tip/ffed638b6a2180da8fd002a46632d746af72b299
Author:        Will Deacon <will@kernel.org>
AuthorDate:    Tue, 12 May 2020 10:01:01 +01:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Wed, 13 May 2020 14:17:09 +02:00

READ_ONCE: Fix comment describing 2x32-bit atomicity

READ_ONCE() permits 64-bit accesses on 32-bit architectures, since this
crops up in a few places and is generally harmless because either the
upper bits are always zero (e.g. for a virtual address or 32-bit time_t)
or the architecture provides 64-bit atomicity anyway.

Update the corresponding comment above compiletime_assert_rwonce_type(),
which incorrectly states that 32-bit x86 provides 64-bit atomicity, and
instead reference 32-bit Armv7 with LPAE.

Reported-by: Jann Horn <jannh@google.com>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20200512090101.2497-1-will@kernel.org

---
 include/linux/compiler.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 741c93c..e24cc3a 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -384,9 +384,9 @@ static inline void *offset_to_ptr(const int *off)
 
 /*
  * Yes, this permits 64-bit accesses on 32-bit architectures. These will
- * actually be atomic in many cases (namely x86), but for others we rely on
- * the access being split into 2x32-bit accesses for a 32-bit quantity (e.g.
- * a virtual address) and a strong prevailing wind.
+ * actually be atomic in some cases (namely Armv7 + LPAE), but for others we
+ * rely on the access being split into 2x32-bit accesses for a 32-bit quantity
+ * (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),	\

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-05-13 12:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-12  9:01 [PATCH] READ_ONCE: Fix comment describing 2x32-bit atomicity Will Deacon
2020-05-13 12:22 ` [tip: locking/kcsan] " tip-bot2 for Will Deacon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.