From: Manfred Spraul I found the 2nd error that caused the db7 corruption with 2.4.0-test3-mm1: There is a copy and paste error in asm-offsets.c that generates a wrong TI_task value. The result of the error is that wrong values are loaded into db7 at syscall return with 4g/4g kernels. arch/i386/kernel/asm-offsets.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN arch/i386/kernel/asm-offsets.c~4g4g-TI_task-fix arch/i386/kernel/asm-offsets.c --- 25/arch/i386/kernel/asm-offsets.c~4g4g-TI_task-fix 2003-08-16 11:52:11.000000000 -0700 +++ 25-akpm/arch/i386/kernel/asm-offsets.c 2003-08-16 11:52:11.000000000 -0700 @@ -30,7 +30,7 @@ void foo(void) DEFINE(RT_SIGFRAME_sigcontext, offsetof (struct rt_sigframe, uc.uc_mcontext)); - DEFINE(TI_task, offsetof (struct thread_info, exec_domain)); + DEFINE(TI_task, offsetof (struct thread_info, task)); DEFINE(TI_exec_domain, offsetof (struct thread_info, exec_domain)); DEFINE(TI_flags, offsetof (struct thread_info, flags)); DEFINE(TI_preempt_count, offsetof (struct thread_info, preempt_count)); _