I have addressed this issue before, and I do it again, because we have a potential kernel crash situation, if this isn't fixed. The __access_ok macro in include/asm-mips64/uaccess.h and the check_axs macro in arch/mips64/kernel/unaligned.c need to be changed in order to work correctly, it's a copy from the 32-bit kernel. It's not good enough to simply check for the "sign bit" of the address. The area between USEG (XUSEG) and KSEG0 will in 64-bit addressing mode generate an address error, if accessed. The size of the area depend on the number of virtual addressing bits implemented in the CPU. Please take a look at the patch below. I think Ralf had some objection the last time I send it, about the fix, not being efficient enough (performance vice), but I think we need to consider stability and functionality over performance. So until someone comes up with a better solution, I think we need this fix. /Carsten -- _ _ ____ ___ Carsten Langgaard Mailto:carstenl@mips.com |\ /|||___)(___ MIPS Denmark Direct: +45 4486 5527 | \/ ||| ____) Lautrupvang 4B Switch: +45 4486 5555 TECHNOLOGIES 2750 Ballerup Fax...: +45 4486 5556 Denmark http://www.mips.com