

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;

_
