]> git.baikalelectronics.ru Git - kernel.git/commit
include/linux: Add instrumented.h infrastructure
authorMarco Elver <elver@google.com>
Tue, 21 Jan 2020 16:05:08 +0000 (17:05 +0100)
committerIngo Molnar <mingo@kernel.org>
Sat, 21 Mar 2020 08:41:34 +0000 (09:41 +0100)
commit55cf8db0fdf47db8336ea0c54397fe51da9be48a
treea17875d3d5cbc77f165ed0eb9f27faba5b28125b
parent3582ccf97d9a4c1831cb2275e1b8b1e5b5a2a836
include/linux: Add instrumented.h infrastructure

This adds instrumented.h, which provides generic wrappers for memory
access instrumentation that the compiler cannot emit for various
sanitizers. Currently this unifies KASAN and KCSAN instrumentation. In
future this will also include KMSAN instrumentation.

Note that, copy_{to,from}_user should use special instrumentation, since
we should be able to instrument both source and destination memory
accesses if both are kernel memory.

The current patch only instruments the memory access where the address
is always in kernel space, however, both may in fact be kernel addresses
when a compat syscall passes an argument allocated in the kernel to a
real syscall. In a future change, both KASAN and KCSAN should check both
addresses in such cases, as well as KMSAN will make use of both
addresses. [It made more sense to provide the completed function
signature, rather than updating it and changing all locations again at a
later time.]

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Marco Elver <elver@google.com>
Acked-by: Alexander Potapenko <glider@google.com>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/instrumented.h [new file with mode: 0644]