I like the series a lot. Superficial comments: for nds32 is there any good reason why __get_user / __set_user check the address limit directly? Maybe we should unify this and make it work like the other architectures. With "uaccess: add generic __{get,put}_kernel_nofault" we should be able to remove HAVE_GET_KERNEL_NOFAULT entirely and just check if the helpers are already defined in linux/uaccess.h. The new generic __access_ok, and the 3 fixed up version early on have a whole lot of superflous braces.