--- sched2/kernel/sched.c.~1~ Wed May 29 17:24:52 2002 +++ sched2/kernel/sched.c Wed May 29 17:34:22 2002 @@ -248,7 +248,6 @@ static inline void resched_task(task_t * int need_resched; need_resched = p->need_resched; - wmb(); set_tsk_need_resched(p); if (!need_resched && (p->cpu != smp_processor_id())) smp_send_reschedule(p->cpu); @@ -794,7 +793,7 @@ switch_tasks: * if the new task was last running on a different * CPU - thus re-load it. */ - mb(); + smp_mb(); rq = this_rq(); spin_unlock_irq(&rq->frozen); } else { --- sched2/kernel/fork.c.~1~ Wed May 29 17:24:52 2002 +++ sched2/kernel/fork.c Wed May 29 17:34:39 2002 @@ -712,7 +712,6 @@ int do_fork(unsigned long clone_flags, u * total amount of pending timeslices in the system doesnt change, * resulting in more scheduling fairness. */ - __save_flags(flags); __cli(); if (!current->time_slice) BUG(); @@ -728,7 +727,7 @@ int do_fork(unsigned long clone_flags, u scheduler_tick(0,0); } p->sleep_timestamp = jiffies; - __restore_flags(flags); + __sti(); /* * Ok, add it to the run-queues and make it