linux/include
Marco Elver d591ec3db7 kcsan: Introduce KCSAN_ACCESS_ASSERT access type
The KCSAN_ACCESS_ASSERT access type may be used to introduce dummy reads
and writes to assert certain properties of concurrent code, where bugs
could not be detected as normal data races.

For example, a variable that is only meant to be written by a single
CPU, but may be read (without locking) by other CPUs must still be
marked properly to avoid data races. However, concurrent writes,
regardless if WRITE_ONCE() or not, would be a bug. Using
kcsan_check_access(&x, sizeof(x), KCSAN_ACCESS_ASSERT) would allow
catching such bugs.

To support KCSAN_ACCESS_ASSERT the following notable changes were made:

  * If an access is of type KCSAN_ASSERT_ACCESS, disable various filters
    that only apply to data races, so that all races that KCSAN observes are
    reported.
  * Bug reports that involve an ASSERT access type will be reported as
    "KCSAN: assert: race in ..." instead of "data-race"; this will help
    more easily distinguish them.
  * Update a few comments to just mention 'races' where we do not always
    mean pure data races.

Signed-off-by: Marco Elver <elver@google.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2020-03-21 09:42:50 +01:00
..
acpi ACPI fixes for 5.6-rc4 2020-02-28 09:02:18 -08:00
asm-generic asm-generic, kcsan: Add KCSAN instrumentation for bitops 2020-03-21 09:41:46 +01:00
clocksource clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources 2020-01-16 19:09:02 +01:00
crypto crypto: x86/curve25519 - support assemblers with no adx support 2020-03-05 18:28:09 +11:00
drm drm/dp_mst: Use full_pbn instead of available_pbn for bandwidth checks 2020-03-12 19:07:24 -04:00
dt-bindings clk: imx8mn: Fix incorrect clock defines 2020-02-17 15:18:00 +08:00
keys
kunit kunit: allow kunit tests to be loaded as a module 2020-01-09 16:42:29 -07:00
kvm
linux kcsan: Introduce KCSAN_ACCESS_ASSERT access type 2020-03-21 09:42:50 +01:00
math-emu
media media: cec: remove unused functions 2020-01-08 14:38:06 +01:00
misc
net fib: add missing attribute validation for tun_id 2020-03-03 13:28:48 -08:00
pcmcia
ras
rdma RDMA/core: Make the entire API tree static 2020-01-30 16:28:52 -04:00
scsi scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session" 2020-02-14 17:13:54 -05:00
soc net: mscc: ocelot: properly account for VLAN header length when setting MRU 2020-03-09 18:58:17 -07:00
sound ASoC: Fixes for v5.6 2020-03-07 07:24:36 +01:00
target
trace ARM: SoC-related driver updates 2020-02-08 14:04:19 -08:00
uapi Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-12 16:19:19 -07:00
vdso lib/vdso: Prepare for time namespace support 2020-01-14 12:20:57 +01:00
video
xen xen/xenbus: fix locking 2020-03-05 09:42:23 -06:00