diff mbox

arm64: percpu: kill off final ACCESS_ONCE() uses

Message ID 1478283426-6649-1-git-send-email-mark.rutland@arm.com
State Accepted
Commit 094339443e6e247254a275ec5e5d8418ad1b2d25
Headers show

Commit Message

Mark Rutland Nov. 4, 2016, 6:17 p.m. UTC
For several reasons it is preferable to use {READ,WRITE}_ONCE() rather than
ACCESS_ONCE(). For example, these handle aggregate types, result in shorter
source code, and better document the intended access (which may be useful for
instrumentation features such as the upcoming KTSAN).

Over a number of patches, most uses of ACCESS_ONCE() in arch/arm64 have been
migrated to {READ,WRITE}_ONCE(). For consistency, and the above reasons, this
patch migrates the final remaining uses.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Will Deacon <will.deacon@arm.com>
---
 arch/arm64/include/asm/percpu.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Comments

Dmitry Vyukov Nov. 7, 2016, 1:44 a.m. UTC | #1
On Fri, Nov 4, 2016 at 11:17 AM, Mark Rutland <mark.rutland@arm.com> wrote:
> For several reasons it is preferable to use {READ,WRITE}_ONCE() rather than

> ACCESS_ONCE(). For example, these handle aggregate types, result in shorter

> source code, and better document the intended access (which may be useful for

> instrumentation features such as the upcoming KTSAN).

>

> Over a number of patches, most uses of ACCESS_ONCE() in arch/arm64 have been

> migrated to {READ,WRITE}_ONCE(). For consistency, and the above reasons, this

> patch migrates the final remaining uses.


Thanks!

Acked-by: Dmitry Vyukov <dvyukov@google.com>



> Signed-off-by: Mark Rutland <mark.rutland@arm.com>

> Cc: Catalin Marinas <catalin.marinas@arm.com>

> Cc: Dmitry Vyukov <dvyukov@google.com>

> Cc: Will Deacon <will.deacon@arm.com>

> ---

>  arch/arm64/include/asm/percpu.h | 16 ++++++++--------

>  1 file changed, 8 insertions(+), 8 deletions(-)

>

> diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h

> index 5394c84..4afb6fc 100644

> --- a/arch/arm64/include/asm/percpu.h

> +++ b/arch/arm64/include/asm/percpu.h

> @@ -101,16 +101,16 @@ static inline unsigned long __percpu_read(void *ptr, int size)

>

>         switch (size) {

>         case 1:

> -               ret = ACCESS_ONCE(*(u8 *)ptr);

> +               ret = READ_ONCE(*(u8 *)ptr);

>                 break;

>         case 2:

> -               ret = ACCESS_ONCE(*(u16 *)ptr);

> +               ret = READ_ONCE(*(u16 *)ptr);

>                 break;

>         case 4:

> -               ret = ACCESS_ONCE(*(u32 *)ptr);

> +               ret = READ_ONCE(*(u32 *)ptr);

>                 break;

>         case 8:

> -               ret = ACCESS_ONCE(*(u64 *)ptr);

> +               ret = READ_ONCE(*(u64 *)ptr);

>                 break;

>         default:

>                 BUILD_BUG();

> @@ -123,16 +123,16 @@ static inline void __percpu_write(void *ptr, unsigned long val, int size)

>  {

>         switch (size) {

>         case 1:

> -               ACCESS_ONCE(*(u8 *)ptr) = (u8)val;

> +               WRITE_ONCE(*(u8 *)ptr, (u8)val);

>                 break;

>         case 2:

> -               ACCESS_ONCE(*(u16 *)ptr) = (u16)val;

> +               WRITE_ONCE(*(u16 *)ptr, (u16)val);

>                 break;

>         case 4:

> -               ACCESS_ONCE(*(u32 *)ptr) = (u32)val;

> +               WRITE_ONCE(*(u32 *)ptr, (u32)val);

>                 break;

>         case 8:

> -               ACCESS_ONCE(*(u64 *)ptr) = (u64)val;

> +               WRITE_ONCE(*(u64 *)ptr, (u64)val);

>                 break;

>         default:

>                 BUILD_BUG();

> --

> 2.7.4

>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Catalin Marinas Nov. 9, 2016, 5:16 p.m. UTC | #2
On Fri, Nov 04, 2016 at 06:17:06PM +0000, Mark Rutland wrote:
> For several reasons it is preferable to use {READ,WRITE}_ONCE() rather than

> ACCESS_ONCE(). For example, these handle aggregate types, result in shorter

> source code, and better document the intended access (which may be useful for

> instrumentation features such as the upcoming KTSAN).

> 

> Over a number of patches, most uses of ACCESS_ONCE() in arch/arm64 have been

> migrated to {READ,WRITE}_ONCE(). For consistency, and the above reasons, this

> patch migrates the final remaining uses.

> 

> Signed-off-by: Mark Rutland <mark.rutland@arm.com>

> Cc: Catalin Marinas <catalin.marinas@arm.com>

> Cc: Dmitry Vyukov <dvyukov@google.com>

> Cc: Will Deacon <will.deacon@arm.com>


I'll queue this for 4.10. Thanks.

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff mbox

Patch

diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h
index 5394c84..4afb6fc 100644
--- a/arch/arm64/include/asm/percpu.h
+++ b/arch/arm64/include/asm/percpu.h
@@ -101,16 +101,16 @@  static inline unsigned long __percpu_read(void *ptr, int size)
 
 	switch (size) {
 	case 1:
-		ret = ACCESS_ONCE(*(u8 *)ptr);
+		ret = READ_ONCE(*(u8 *)ptr);
 		break;
 	case 2:
-		ret = ACCESS_ONCE(*(u16 *)ptr);
+		ret = READ_ONCE(*(u16 *)ptr);
 		break;
 	case 4:
-		ret = ACCESS_ONCE(*(u32 *)ptr);
+		ret = READ_ONCE(*(u32 *)ptr);
 		break;
 	case 8:
-		ret = ACCESS_ONCE(*(u64 *)ptr);
+		ret = READ_ONCE(*(u64 *)ptr);
 		break;
 	default:
 		BUILD_BUG();
@@ -123,16 +123,16 @@  static inline void __percpu_write(void *ptr, unsigned long val, int size)
 {
 	switch (size) {
 	case 1:
-		ACCESS_ONCE(*(u8 *)ptr) = (u8)val;
+		WRITE_ONCE(*(u8 *)ptr, (u8)val);
 		break;
 	case 2:
-		ACCESS_ONCE(*(u16 *)ptr) = (u16)val;
+		WRITE_ONCE(*(u16 *)ptr, (u16)val);
 		break;
 	case 4:
-		ACCESS_ONCE(*(u32 *)ptr) = (u32)val;
+		WRITE_ONCE(*(u32 *)ptr, (u32)val);
 		break;
 	case 8:
-		ACCESS_ONCE(*(u64 *)ptr) = (u64)val;
+		WRITE_ONCE(*(u64 *)ptr, (u64)val);
 		break;
 	default:
 		BUILD_BUG();