diff -Nur linux-4.3.orig/include/asm-generic/uaccess.h linux-4.3/include/asm-generic/uaccess.h --- linux-4.3.orig/include/asm-generic/uaccess.h 2015-11-02 01:05:25.000000000 +0100 +++ linux-4.3/include/asm-generic/uaccess.h 2015-11-17 13:01:11.745876944 +0100 @@ -163,9 +163,10 @@ #define put_user(x, ptr) \ ({ \ + __typeof__((ptr)) __p = (ptr); \ might_fault(); \ - access_ok(VERIFY_WRITE, ptr, sizeof(*ptr)) ? \ - __put_user(x, ptr) : \ + access_ok(VERIFY_WRITE, __p, sizeof(*__p)) ? \ + __put_user((x), __p) : \ -EFAULT; \ }) @@ -225,9 +226,10 @@ #define get_user(x, ptr) \ ({ \ + __typeof__((ptr)) __p = (ptr); \ might_fault(); \ - access_ok(VERIFY_READ, ptr, sizeof(*ptr)) ? \ - __get_user(x, ptr) : \ + access_ok(VERIFY_READ, __p, sizeof(*__p)) ? \ + __get_user((x), __p) : \ -EFAULT; \ })