These patches extend the test_user_copy test module to handle lots more cases of user accessors which architectures can override separately, and in particular those which are important for checking the MIPS Enhanced Virtual Addressing (EVA) implementations, which need to handle overlapping user and kernel address spaces, with special instructions for accessing user address space from kernel mode. - Checking that kernel pointers are accepted when user address limit is set to KERNEL_DS, as done by the kernel when it internally invokes system calls with kernel pointers. - Checking of the unchecked accessors (which don't call access_ok()). Some of the tests are special cased for EVA at the moment which has stricter hardware guarantees for bad user accesses than other configurations. - Checking of other sets of user accessors, including the inatomic user copies, copy_in_user, clear_user, the user string accessors, and the user checksum functions, all of which need special handling in arch code with EVA. Tested on MIPS with and without EVA, and on x86_64. James Hogan (7): test_user_copy: Check legit kernel accesses test_user_copy: Check unchecked accessors test_user_copy: Check __clear_user()/clear_user() test_user_copy: Check __copy_in_user()/copy_in_user() test_user_copy: Check __copy_{to,from}_user_inatomic() test_user_copy: Check user string accessors test_user_copy: Check user checksum functions lib/test_user_copy.c | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) Cc: Kees Cook <keescook@xxxxxxxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> -- 2.3.6