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:
parent
40ab8ae403
commit
c47bc039c0
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user