• Mark Rutland's avatar
    ath9k: ar9002_mac: kill off ACCESS_ONCE() · d5a3a76a
    Mark Rutland authored
    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: default avatarMark 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: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    d5a3a76a
ar9002_mac.c 11.3 KB