From: Matt Mackall 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; _