diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2011-06-23 14:19:29 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2011-06-27 18:17:13 -0400 |
commit | 192d8857427dd23707d5f0b86ca990c3af6f2d74 (patch) | |
tree | 1de33c7a3adbe14863f9bbdaf57a8b76c6144f62 /kernel | |
parent | f740e6cd0cb5e7468e46831aeb4d9c30e03d5ebc (diff) |
x86, mtrr: use stop_machine APIs for doing MTRR rendezvous
MTRR rendezvous sequence is not implemened using stop_machine() before, as this
gets called both from the process context aswell as the cpu online paths
(where the cpu has not come online and the interrupts are disabled etc).
Now that we have a new stop_machine_from_inactive_cpu() API, use it for
rendezvous during mtrr init of a logical processor that is coming online.
For the rest (runtime MTRR modification, system boot, resume paths), use
stop_machine() to implement the rendezvous sequence. This will consolidate and
cleanup the code.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Link: http://lkml.kernel.org/r/20110623182057.076997177@sbsiddha-MOBL3.sc.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/stop_machine.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index e8f05b14cd43..c1124752e1d3 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c | |||
@@ -132,8 +132,8 @@ void stop_one_cpu_nowait(unsigned int cpu, cpu_stop_fn_t fn, void *arg, | |||
132 | cpu_stop_queue_work(&per_cpu(cpu_stopper, cpu), work_buf); | 132 | cpu_stop_queue_work(&per_cpu(cpu_stopper, cpu), work_buf); |
133 | } | 133 | } |
134 | 134 | ||
135 | DEFINE_MUTEX(stop_cpus_mutex); | ||
136 | /* static data for stop_cpus */ | 135 | /* static data for stop_cpus */ |
136 | static DEFINE_MUTEX(stop_cpus_mutex); | ||
137 | static DEFINE_PER_CPU(struct cpu_stop_work, stop_cpus_work); | 137 | static DEFINE_PER_CPU(struct cpu_stop_work, stop_cpus_work); |
138 | 138 | ||
139 | static void queue_stop_cpus_work(const struct cpumask *cpumask, | 139 | static void queue_stop_cpus_work(const struct cpumask *cpumask, |