This patch needs to be applied to the 4:4 patch if the kernel already supports 4k stacks. --- 25-akpm/arch/i386/kernel/irq.c | 4 ++++ 1 files changed, 4 insertions(+) diff -puN arch/i386/kernel/irq.c~4g4g-restore-4k-stacks-stuff arch/i386/kernel/irq.c --- 25/arch/i386/kernel/irq.c~4g4g-restore-4k-stacks-stuff 2004-03-23 23:00:22.030585984 -0800 +++ 25-akpm/arch/i386/kernel/irq.c 2004-03-23 23:00:22.033585528 -0800 @@ -514,6 +514,8 @@ asmlinkage unsigned int do_IRQ(struct pt /* build the stack frame on the IRQ stack */ isp = (u32*) ((char*)irqctx + sizeof(*irqctx)); irqctx->tinfo.task = curctx->tinfo.task; + irqctx->tinfo.real_stack = curctx->tinfo.real_stack; + irqctx->tinfo.virtual_stack = curctx->tinfo.virtual_stack; irqctx->tinfo.previous_esp = current_stack_pointer(); *--isp = (u32) action; @@ -1172,6 +1174,8 @@ asmlinkage void do_softirq(void) curctx = current_thread_info(); irqctx = softirq_ctx[smp_processor_id()]; irqctx->tinfo.task = curctx->task; + irqctx->tinfo.real_stack = curctx->real_stack; + irqctx->tinfo.virtual_stack = curctx->virtual_stack; irqctx->tinfo.previous_esp = current_stack_pointer(); /* build the stack frame on the softirq stack */ _