• M
    kcsan: Change data_race() to no longer require marking racing accesses · d071e913
    Marco Elver 提交于
    Thus far, accesses marked with data_race() would still require the
    racing access to be marked in some way (be it with READ_ONCE(),
    WRITE_ONCE(), or data_race() itself), as otherwise KCSAN would still
    report a data race.  This requirement, however, seems to be unintuitive,
    and some valid use-cases demand *not* marking other accesses, as it
    might hide more serious bugs (e.g. diagnostic reads).
    
    Therefore, this commit changes data_race() to no longer require marking
    racing accesses (although it's still recommended if possible).
    
    The alternative would have been introducing another variant of
    data_race(), however, since usage of data_race() already needs to be
    carefully reasoned about, distinguishing between these cases likely adds
    more complexity in the wrong place.
    
    Link: https://lkml.kernel.org/r/20200331131002.GA30975@willie-the-truck
    Cc: Paul E. McKenney <paulmck@kernel.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Qian Cai <cai@lca.pw>
    Acked-by: NWill Deacon <will@kernel.org>
    Signed-off-by: NMarco Elver <elver@google.com>
    Signed-off-by: NPaul E. McKenney <paulmck@kernel.org>
    d071e913
compiler.h 12.4 KB