Revert r211176:

As long as interrupts are disabled and there is not explicit call to
sched_add() there can't be any preemption there, thus the calls may be
consistent.

Reported by:	kib, jhb
This commit is contained in:
attilio 2010-08-12 13:46:43 +00:00
parent 40ab8ae403
commit c47bc039c0
2 changed files with 2 additions and 16 deletions

View File

@ -1324,10 +1324,8 @@ cpustop_handler(void)
cpumask_t cpumask;
u_int cpu;
sched_pin();
cpu = PCPU_GET(cpuid);
cpumask = PCPU_GET(cpumask);
sched_unpin();
savectx(&stoppcbs[cpu]);
@ -1358,10 +1356,8 @@ cpususpend_handler(void)
register_t cr3, rf;
u_int cpu;
sched_pin();
cpu = PCPU_GET(cpuid);
cpumask = PCPU_GET(cpumask);
sched_unpin();
rf = intr_disable();
cr3 = rcr3();
@ -1542,14 +1538,10 @@ mp_grab_cpu_hlt(void)
#endif
int retval;
mask = PCPU_GET(cpumask);
#ifdef MP_WATCHDOG
sched_pin();
mask = PCPU_GET(cpumask);
cpuid = PCPU_GET(cpuid);
sched_unpin();
ap_watchdog(cpuid);
#else
mask = PCPU_GET(cpumask);
#endif
retval = 0;

View File

@ -1411,10 +1411,8 @@ cpustop_handler(void)
cpumask_t cpumask;
u_int cpu;
sched_pin();
cpu = PCPU_GET(cpuid);
cpumask = PCPU_GET(cpumask);
sched_unpin();
savectx(&stoppcbs[cpu]);
@ -1588,14 +1586,10 @@ mp_grab_cpu_hlt(void)
#endif
int retval;
mask = PCPU_GET(cpumask);
#ifdef MP_WATCHDOG
sched_pin();
mask = PCPU_GET(cpumask);
cpuid = PCPU_GET(cpuid);
sched_unpin();
ap_watchdog(cpuid);
#else
mask = PCPU_GET(cpumask);
#endif
retval = 0;