• Mark Rutland's avatar
    ath9k: ar9003_mac: kill off ACCESS_ONCE() · 50f38181
    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 ar9003 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>
    50f38181
ar9003_mac.c 17 KB