Merge the i386 fix for the page fault from Linus to x86-64 (I'm not actually sure what it fixes, but if it's good for 32bit it is likely good for 64bit too) arch/x86_64/mm/fault.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN arch/x86_64/mm/fault.c~x86_64-06 arch/x86_64/mm/fault.c --- 25/arch/x86_64/mm/fault.c~x86_64-06 2003-12-23 23:55:58.000000000 -0800 +++ 25-akpm/arch/x86_64/mm/fault.c 2003-12-23 23:55:58.000000000 -0800 @@ -340,7 +340,8 @@ bad_area_nosemaphore: } tsk->thread.cr2 = address; - tsk->thread.error_code = error_code; + /* Kernel addresses are always protection faults */ + tsk->thread.error_code = error_code | (address >= TASK_SIZE); tsk->thread.trap_no = 14; info.si_signo = SIGSEGV; info.si_errno = 0; _