|
@@ -122,12 +122,12 @@ static int smpboot_thread_fn(void *data)
|
|
|
|
|
|
if (kthread_should_park()) {
|
|
if (kthread_should_park()) {
|
|
__set_current_state(TASK_RUNNING);
|
|
__set_current_state(TASK_RUNNING);
|
|
|
|
+ preempt_enable();
|
|
if (ht->park && td->status == HP_THREAD_ACTIVE) {
|
|
if (ht->park && td->status == HP_THREAD_ACTIVE) {
|
|
BUG_ON(td->cpu != smp_processor_id());
|
|
BUG_ON(td->cpu != smp_processor_id());
|
|
ht->park(td->cpu);
|
|
ht->park(td->cpu);
|
|
td->status = HP_THREAD_PARKED;
|
|
td->status = HP_THREAD_PARKED;
|
|
}
|
|
}
|
|
- preempt_enable();
|
|
|
|
kthread_parkme();
|
|
kthread_parkme();
|
|
/* We might have been woken for stop */
|
|
/* We might have been woken for stop */
|
|
continue;
|
|
continue;
|