[PATCH] fix strange stack calculation for secondary cpus

From: Dave Hansen (haveblue@us.ibm.com)
Date: Tue Dec 10 2002 - 16:00:15 EST


in arch/i386/kernel/smpboot.c:
stack_start.esp = (void *) (1024 + PAGE_SIZE + (char *)idle);

This causes problems when I switch to 4k stacks? What is supposed to
be going on here? Why point esp into the middle of the stack? If you
wanted to do that, why not just use PAGE_SIZE>>2?

In any case, I think THREAD_SIZE needs to be here instead of PAGE_SIZE.

-- 
Dave Hansen
haveblue@us.ibm.com

--- linux-2.5.50/arch/i386/kernel/smpboot.c.bad Tue Dec 10 12:56:10 2002 +++ linux-2.5.50/arch/i386/kernel/smpboot.c Tue Dec 10 12:56:55 2002 @@ -806,7 +806,7 @@ /* So we see what's up */ printk("Booting processor %d/%d eip %lx\n", cpu, apicid, start_eip); - stack_start.esp = (void *) (1024 + PAGE_SIZE + (char *)idle->thread_info); + stack_start.esp = (void *) (THREAD_SIZE + (char *)idle->thread_info); /* * This grunge runs the startup process for

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Dec 15 2002 - 22:00:18 EST