Commit 8b801a69 authored by Ben Pfaff's avatar Ben Pfaff
Browse files

thread: Do not disable interrupts unnecessarily while initializing stack.

Reported by Francis Russell <>.
parent 09fa5c11
......@@ -171,7 +171,6 @@ thread_create (const char *name, int priority,
struct switch_entry_frame *ef;
struct switch_threads_frame *sf;
tid_t tid;
enum intr_level old_level;
ASSERT (function != NULL);
......@@ -184,11 +183,6 @@ thread_create (const char *name, int priority,
init_thread (t, name, priority);
tid = t->tid = allocate_tid ();
/* Prepare thread for first run by initializing its stack.
Do this atomically so intermediate values for the 'stack'
member cannot be observed. */
old_level = intr_disable ();
/* Stack frame for kernel_thread(). */
kf = alloc_frame (t, sizeof *kf);
kf->eip = NULL;
......@@ -204,8 +198,6 @@ thread_create (const char *name, int priority,
sf->eip = switch_entry;
sf->ebp = 0;
intr_set_level (old_level);
/* Add to run queue. */
thread_unblock (t);
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment