hi, Ralf there are lots of warnings about the macro: clear_user in linux-mips. in linux-2.6.29.3, it will come with errors, so, must be fixed. the type of the second argument of access_ok should be void __user *, but there is an un-needed (unsigned long) conversion before __cl_addr, so remove the (unsigned long) will fix this problem. best regards, Wu Zhangjin -- diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h index 42b9cec..cd32e9f 100644 --- a/arch/mips/include/asm/uaccess.h +++ b/arch/mips/include/asm/uaccess.h @@ -936,7 +936,7 @@ __clear_user(void __user *addr, __kernel_size_t size) void __user * __cl_addr = (addr); \ unsigned long __cl_size = (n); \ if (__cl_size && access_ok(VERIFY_WRITE, \ - ((unsigned long)(__cl_addr)), __cl_size)) \ + __cl_addr, __cl_size)) \ __cl_size = __clear_user(__cl_addr, __cl_size); \ __cl_size; \ })