Mark Rutland
c95491ed6d
locking/atomics, workqueue: Convert ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE()
For several reasons, it is desirable to use {READ,WRITE}_ONCE() in
preference to ACCESS_ONCE(), and new code is expected to use one of the
former. So far, there's been no reason to change most existing uses of
ACCESS_ONCE(), as these aren't currently harmful.
However, for some features it is necessary to instrument reads and
writes separately, which is not possible with ACCESS_ONCE(). This
distinction is critical to correct operation.
It's possible to transform the bulk of kernel code using the Coccinelle
script below. However, this doesn't handle comments, leaving references
to ACCESS_ONCE() instances which have been removed. As a preparatory
step, this patch converts the workqueue code and comments to use
{READ,WRITE}_ONCE() consistently.
----
virtual patch
@ depends on patch @
expression E1, E2;
@@
- ACCESS_ONCE(E1) = E2
+ WRITE_ONCE(E1, E2)
@ depends on patch @
expression E;
@@
- ACCESS_ONCE(E)
+ READ_ONCE(E)
----
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: davem@davemloft.net
Cc: linux-arch@vger.kernel.org
Cc: mpe@ellerman.id.au
Cc: shuah@kernel.org
Cc: snitzer@redhat.com
Cc: thor.thayer@linux.intel.com
Cc: viro@zeniv.linux.org.uk
Cc: will.deacon@arm.com
Link: http://lkml.kernel.org/r/1508792849-3115-12-git-send-email-paulmck@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-10-25 11:01:03 +02:00
..
2017-10-22 00:56:09 +01:00
2017-10-10 20:24:29 -07:00
2017-08-22 18:43:23 -07:00
2017-03-02 08:42:34 +01:00
2017-10-24 13:17:33 +02:00
2017-05-12 15:57:15 -07:00
2017-10-16 10:26:46 +02:00
2017-10-11 15:38:46 +02:00
2017-10-25 10:57:25 +02:00
2017-09-29 01:26:13 +02:00
2017-09-07 21:00:52 -07:00
2017-10-19 22:26:11 -04:00
2017-10-19 22:13:40 -04:00
2017-09-08 18:26:51 -07:00
2017-10-04 08:34:01 -07:00
2017-09-04 19:05:15 -04:00
2017-05-23 10:01:37 +02:00
2017-05-03 11:05:15 -07:00
2017-05-03 11:05:15 -07:00
2017-08-16 16:48:34 -07:00
2017-09-05 09:46:59 -04:00
2017-09-03 20:21:24 -04:00
2017-05-02 10:16:05 -04:00
2017-09-14 17:37:26 -07:00
2017-01-12 07:01:56 -07:00
2017-07-15 20:46:47 -04:00
2016-12-24 11:46:01 -08:00
2017-07-31 13:09:49 +02:00
2017-10-21 16:11:30 +02:00
2017-07-12 16:26:00 -07:00
2017-05-18 10:30:19 -06:00
2017-03-02 08:42:39 +01:00
2017-10-20 15:32:54 -04:00
2017-09-23 16:50:20 -04:00
2017-10-13 16:18:33 -07:00
2016-12-24 11:46:01 -08:00
2017-09-25 16:37:11 +02:00
2017-07-10 16:32:34 -07:00
2017-05-08 17:15:10 -07:00
2017-10-19 07:49:14 +02:00
2017-07-10 16:32:34 -07:00
2017-10-03 17:54:25 -07:00
2016-10-25 11:31:51 +02:00
2017-09-08 18:26:51 -07:00
2017-07-18 11:38:04 +02:00
2017-07-12 16:26:02 -07:00
2017-07-12 16:26:02 -07:00
2017-07-12 16:26:00 -07:00
2017-09-08 18:26:51 -07:00
2017-07-08 11:05:35 +02:00
2017-07-12 16:25:59 -07:00
2017-08-31 16:33:15 -07:00
2017-03-02 08:42:39 +01:00
2017-09-08 18:26:51 -07:00
2017-10-03 17:54:25 -07:00
2017-07-25 15:08:32 +02:00
2017-02-24 17:46:56 -08:00
2017-03-13 15:57:41 -03:00
2017-05-26 10:10:37 +02:00
2017-08-17 10:40:26 +02:00
2017-10-03 17:54:26 -07:00
2017-07-20 07:43:58 -05:00
2017-08-21 12:47:31 -07:00
2017-03-02 08:42:39 +01:00
2017-07-24 14:30:28 -05:00
2017-05-02 11:38:06 -07:00
2017-10-24 13:17:33 +02:00
2017-09-11 18:34:47 -07:00
2017-09-08 18:26:48 -07:00
2017-10-04 10:53:54 +02:00
2017-04-11 09:06:32 +02:00
2017-03-08 09:18:02 +01:00
2017-05-26 10:10:36 +02:00
2016-12-22 22:58:37 -05:00
2017-07-20 07:46:07 -05:00
2017-09-04 19:05:15 -04:00
2017-10-06 08:36:41 -07:00
2017-10-24 13:17:33 +02:00
2017-05-08 17:15:12 -07:00
2017-07-25 13:04:45 -07:00
2017-03-02 08:42:35 +01:00
2017-03-02 08:42:39 +01:00
2017-03-06 15:26:37 -06:00
2017-03-02 08:42:31 +01:00
2017-09-08 18:26:50 -07:00
2017-08-29 15:14:38 +02:00
2017-07-20 07:43:58 -05:00
2017-03-02 08:42:29 +01:00
2017-03-03 01:45:36 +01:00
2017-03-02 08:42:38 +01:00
2017-09-28 12:24:54 +02:00
2017-10-04 11:30:50 +02:00
2017-10-25 11:01:03 +02:00