aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/smp.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/smp.c')
-rw-r--r--kernel/smp.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/smp.c b/kernel/smp.c
index f10408422444..3fc697336183 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -9,11 +9,10 @@
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/percpu.h> 10#include <linux/percpu.h>
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/gfp.h>
12#include <linux/smp.h> 13#include <linux/smp.h>
13#include <linux/cpu.h> 14#include <linux/cpu.h>
14 15
15static DEFINE_PER_CPU(struct call_single_queue, call_single_queue);
16
17static struct { 16static struct {
18 struct list_head queue; 17 struct list_head queue;
19 raw_spinlock_t lock; 18 raw_spinlock_t lock;
@@ -33,12 +32,14 @@ struct call_function_data {
33 cpumask_var_t cpumask; 32 cpumask_var_t cpumask;
34}; 33};
35 34
35static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_function_data, cfd_data);
36
36struct call_single_queue { 37struct call_single_queue {
37 struct list_head list; 38 struct list_head list;
38 raw_spinlock_t lock; 39 raw_spinlock_t lock;
39}; 40};
40 41
41static DEFINE_PER_CPU(struct call_function_data, cfd_data); 42static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_queue, call_single_queue);
42 43
43static int 44static int
44hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu) 45hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu)
@@ -256,7 +257,7 @@ void generic_smp_call_function_single_interrupt(void)
256 } 257 }
257} 258}
258 259
259static DEFINE_PER_CPU(struct call_single_data, csd_data); 260static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_data, csd_data);
260 261
261/* 262/*
262 * smp_call_function_single - Run a function on a specific CPU 263 * smp_call_function_single - Run a function on a specific CPU