From: Matt Mackall <mpm@selenic.com>

Noticed the THREAD_SIZE clean-ups are in -mm now. Here are the missing
bits for kgdb, tested in -tiny with 4k stacks. 


---

 arch/i386/kernel/kgdb_stub.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff -puN arch/i386/kernel/kgdb_stub.c~kgdb-THREAD_SIZE-fixes arch/i386/kernel/kgdb_stub.c
--- 25/arch/i386/kernel/kgdb_stub.c~kgdb-THREAD_SIZE-fixes	2004-03-08 23:24:50.000000000 -0800
+++ 25-akpm/arch/i386/kernel/kgdb_stub.c	2004-03-08 23:24:50.000000000 -0800
@@ -707,12 +707,13 @@ get_gdb_regs(struct task_struct *p, stru
 	if (p->state == TASK_RUNNING)
 		return;
 	stack_page = (unsigned long) p->thread_info;
-	if (gdb_regs[_ESP] < stack_page || gdb_regs[_ESP] > 8188 + stack_page)
+	if (gdb_regs[_ESP] < stack_page || gdb_regs[_ESP] >
+	    THREAD_SIZE - sizeof(long) + stack_page)
 		return;
 	/* include/asm-i386/system.h:switch_to() pushes ebp last. */
 	do {
 		if (gdb_regs[_EBP] < stack_page ||
-		    gdb_regs[_EBP] > 8184 + stack_page)
+		    gdb_regs[_EBP] > THREAD_SIZE - 2*sizeof(long) + stack_page)
 			return;
 		gdb_regs[_PC] = *(unsigned long *) (gdb_regs[_EBP] + 4);
 		gdb_regs[_ESP] = gdb_regs[_EBP] + 8;

_