Fixes RESET_STACKS
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 25 Oct 2012 19:31:03 +0000 (12:31 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 25 Oct 2012 19:31:03 +0000 (12:31 -0700)
Need to not inline __smp_idle(), o/w the set_stack_pointer mucks with
things (specifically, it was mucking with the first word of the previous
page, which was often kthread poison).

kern/src/smp.c

index 96412f0..853f0d1 100644 (file)
@@ -47,10 +47,8 @@ static void try_run_proc(void)
  * cores enter a loop.  They halt and wake up when interrupted, do any work on
  * their work queue, then halt again.  In between, the ksched gets a chance to
  * tell it to do something else, or perhaps to halt in another manner. */
-static void __smp_idle(void)
+static void __attribute__((noinline, noreturn)) __smp_idle(void)
 {
-       int8_t state = 0;
-
        /* TODO: idle, abandon_core(), and proc_restartcore() need cleaned up */
        enable_irq();   /* get any IRQs before we halt later */
        try_run_proc();