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 */

_