diff options
Diffstat (limited to 'kernel/stop_machine.c')
| -rw-r--r-- | kernel/stop_machine.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index b7350bbfb076..738b411ff2d3 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c | |||
| @@ -33,8 +33,9 @@ static int stopmachine(void *cpu) | |||
| 33 | { | 33 | { |
| 34 | int irqs_disabled = 0; | 34 | int irqs_disabled = 0; |
| 35 | int prepared = 0; | 35 | int prepared = 0; |
| 36 | cpumask_of_cpu_ptr(cpumask, (int)(long)cpu); | ||
| 36 | 37 | ||
| 37 | set_cpus_allowed_ptr(current, &cpumask_of_cpu((int)(long)cpu)); | 38 | set_cpus_allowed_ptr(current, cpumask); |
| 38 | 39 | ||
| 39 | /* Ack: we are alive */ | 40 | /* Ack: we are alive */ |
| 40 | smp_mb(); /* Theoretically the ack = 0 might not be on this CPU yet. */ | 41 | smp_mb(); /* Theoretically the ack = 0 might not be on this CPU yet. */ |
| @@ -187,7 +188,7 @@ struct task_struct *__stop_machine_run(int (*fn)(void *), void *data, | |||
| 187 | struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 }; | 188 | struct sched_param param = { .sched_priority = MAX_RT_PRIO-1 }; |
| 188 | 189 | ||
| 189 | /* One high-prio thread per cpu. We'll do this one. */ | 190 | /* One high-prio thread per cpu. We'll do this one. */ |
| 190 | sched_setscheduler(p, SCHED_FIFO, ¶m); | 191 | sched_setscheduler_nocheck(p, SCHED_FIFO, ¶m); |
| 191 | kthread_bind(p, cpu); | 192 | kthread_bind(p, cpu); |
| 192 | wake_up_process(p); | 193 | wake_up_process(p); |
| 193 | wait_for_completion(&smdata.done); | 194 | wait_for_completion(&smdata.done); |
