]> git.baikalelectronics.ru Git - kernel.git/commit
ath9k: ar9002_mac: kill off ACCESS_ONCE()
authorMark Rutland <mark.rutland@arm.com>
Wed, 11 Jan 2017 14:32:14 +0000 (16:32 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 12 Jan 2017 10:59:45 +0000 (12:59 +0200)
commitf012f797288013735d276226c5f46e2d9f056628
tree35aa1dcad6e192b435bf4cd9682a0eac1a29a9f4
parent948f9b95a1423b662ce1fd662ab9bf97e299a9d9
ath9k: ar9002_mac: kill off ACCESS_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 new features (e.g. KTSAN / Kernel Thread Sanitizer),
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, for some files (including the ath9k ar9002 mac
driver), this mangles the formatting. As a preparatory step, this patch
converts the driver to use {READ,WRITE}_ONCE() without said mangling.

----
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>
Cc: ath9k-devel@qca.qualcomm.com
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless@vger.kernel.org
Cc: ath9k-devel@lists.ath9k.org
Cc: netdev@vger.kernel.org
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath9k/ar9002_mac.c