summaryrefslogtreecommitdiff
path: root/kern/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kern/kernel.c')
-rw-r--r--kern/kernel.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/kern/kernel.c b/kern/kernel.c
index 70cc8c71..760f68e8 100644
--- a/kern/kernel.c
+++ b/kern/kernel.c
@@ -22,31 +22,16 @@
#include <kern/thread.h>
#include <machine/cpu.h>
-static void __init
-kernel_setup(void *arg)
-{
- (void)arg;
-
- for (;;)
- cpu_idle();
-}
-
void __init
kernel_main(void)
{
- struct thread *thread;
- int error;
-
assert(!cpu_intr_enabled());
task_setup();
thread_setup();
- cpu_mp_setup();
-
- error = thread_create(&thread, "core", kernel_task, kernel_setup, NULL);
- if (error)
- panic("kernel: unable to create kernel thread");
+ /* Interrupts are enabled by this call */
+ cpu_mp_setup();
thread_run();
@@ -58,8 +43,7 @@ kernel_ap_main(void)
{
assert(cpu_intr_enabled());
- for (;;)
- cpu_idle();
+ thread_run();
/* Never reached */
}