Commit d0ef4c36 authored by Marco Elver's avatar Marco Elver Committed by Ingo Molnar

iov_iter: Use generic instrumented.h

This replaces the kasan instrumentation with generic instrumentation,
implicitly adding KCSAN instrumentation support.

For KASAN no functional change is intended.
Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarMarco Elver <elver@google.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 27f937cc
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/splice.h> #include <linux/splice.h>
#include <net/checksum.h> #include <net/checksum.h>
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
#include <linux/instrumented.h>
#define PIPE_PARANOIA /* for now */ #define PIPE_PARANOIA /* for now */
...@@ -138,7 +139,7 @@ ...@@ -138,7 +139,7 @@
static int copyout(void __user *to, const void *from, size_t n) static int copyout(void __user *to, const void *from, size_t n)
{ {
if (access_ok(to, n)) { if (access_ok(to, n)) {
kasan_check_read(from, n); instrument_copy_to_user(to, from, n);
n = raw_copy_to_user(to, from, n); n = raw_copy_to_user(to, from, n);
} }
return n; return n;
...@@ -147,7 +148,7 @@ static int copyout(void __user *to, const void *from, size_t n) ...@@ -147,7 +148,7 @@ static int copyout(void __user *to, const void *from, size_t n)
static int copyin(void *to, const void __user *from, size_t n) static int copyin(void *to, const void __user *from, size_t n)
{ {
if (access_ok(from, n)) { if (access_ok(from, n)) {
kasan_check_write(to, n); instrument_copy_from_user(to, from, n);
n = raw_copy_from_user(to, from, n); n = raw_copy_from_user(to, from, n);
} }
return n; return n;
...@@ -639,7 +640,7 @@ EXPORT_SYMBOL(_copy_to_iter); ...@@ -639,7 +640,7 @@ EXPORT_SYMBOL(_copy_to_iter);
static int copyout_mcsafe(void __user *to, const void *from, size_t n) static int copyout_mcsafe(void __user *to, const void *from, size_t n)
{ {
if (access_ok(to, n)) { if (access_ok(to, n)) {
kasan_check_read(from, n); instrument_copy_to_user(to, from, n);
n = copy_to_user_mcsafe((__force void *) to, from, n); n = copy_to_user_mcsafe((__force void *) to, from, n);
} }
return n; return n;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment