patch-2.4.5 linux/arch/alpha/kernel/process.c
Next file: linux/arch/alpha/kernel/setup.c
Previous file: linux/arch/alpha/kernel/pci_iommu.c
Back to the patch index
Back to the overall index
- Lines: 38
- Date:
Thu May 24 15:20:18 2001
- Orig file:
v2.4.4/linux/arch/alpha/kernel/process.c
- Orig date:
Fri Feb 9 11:29:44 2001
diff -u --recursive --new-file v2.4.4/linux/arch/alpha/kernel/process.c linux/arch/alpha/kernel/process.c
@@ -83,10 +83,11 @@
/* Although we are an idle CPU, we do not want to
get into the scheduler unnecessarily. */
- if (current->need_resched) {
- schedule();
- check_pgt_cache();
- }
+ long oldval = xchg(¤t->need_resched, -1UL);
+ if (!oldval)
+ while (current->need_resched < 0);
+ schedule();
+ check_pgt_cache();
}
}
@@ -303,7 +304,7 @@
struct task_struct * p, struct pt_regs * regs)
{
extern void ret_from_sys_call(void);
- extern void ret_from_smp_fork(void);
+ extern void ret_from_fork(void);
struct pt_regs * childregs;
struct switch_stack * childstack, *stack;
@@ -322,11 +323,7 @@
stack = ((struct switch_stack *) regs) - 1;
childstack = ((struct switch_stack *) childregs) - 1;
*childstack = *stack;
-#ifdef CONFIG_SMP
- childstack->r26 = (unsigned long) ret_from_smp_fork;
-#else
- childstack->r26 = (unsigned long) ret_from_sys_call;
-#endif
+ childstack->r26 = (unsigned long) ret_from_fork;
p->thread.usp = usp;
p->thread.ksp = (unsigned long) childstack;
p->thread.pal_flags = 1; /* set FEN, clear everything else */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)