freebsd-dev/sys/x86
Mark Johnston 693c9516fa busdma: Add KMSAN integration
Sanitizer instrumentation of course cannot automatically update shadow
state when devices write to host memory.  KMSAN thus hooks into busdma,
both to update shadow state after a device write, and to verify that the
kernel does not publish uninitalized bytes to devices.

To implement this, when KMSAN is configured, each dmamap embeds a memory
descriptor describing the region currently loaded into the map.
bus_dmamap_sync() uses the operation flags to determine whether to
validate the loaded region or to mark it as initialized in the shadow
map.

Note that in cases where the amount of data written is less than the
buffer size, the entire buffer is marked initialized even when it is
not.  For example, if a NIC writes a 128B packet into a 2KB buffer, the
entire buffer will be marked initialized, but subsequent accesses past
the first 128 bytes are likely caused by bugs.

Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D31338
2021-08-10 21:27:54 -04:00
..
acpica Disable x2APIC for SandyBridge laptops with Samsung BIOS 2021-06-03 22:47:31 +03:00
bios smbios: Move smbios driver out from x86 machdep code 2021-02-23 21:17:09 +00:00
conf Use envvar rather than nonstandard hint. lines 2020-09-23 19:18:53 +00:00
cpufreq hwpstate_intel: don't unconditionally print the error message 2020-11-29 01:43:04 +00:00
include busdma: Add KMSAN integration 2021-08-10 21:27:54 -04:00
iommu Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
isa amd64: Add MD bits for KMSAN 2021-08-10 21:27:53 -04:00
linux Drop "All rights reserved" from my copyright statements. 2021-07-20 10:05:50 +03:00
pci x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
x86 busdma: Add KMSAN integration 2021-08-10 21:27:54 -04:00
xen xen: introduce xen_has_percpu_evtchn() 2021-07-28 17:27:05 +02:00