|
@@ -12,8 +12,6 @@
|
|
|
#include <linux/smp.h>
|
|
|
#include <linux/cpu.h>
|
|
|
|
|
|
-static DEFINE_PER_CPU(struct call_single_queue, call_single_queue);
|
|
|
-
|
|
|
static struct {
|
|
|
struct list_head queue;
|
|
|
raw_spinlock_t lock;
|
|
@@ -33,12 +31,14 @@ struct call_function_data {
|
|
|
cpumask_var_t cpumask;
|
|
|
};
|
|
|
|
|
|
+static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_function_data, cfd_data);
|
|
|
+
|
|
|
struct call_single_queue {
|
|
|
struct list_head list;
|
|
|
raw_spinlock_t lock;
|
|
|
};
|
|
|
|
|
|
-static DEFINE_PER_CPU(struct call_function_data, cfd_data);
|
|
|
+static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_queue, call_single_queue);
|
|
|
|
|
|
static int
|
|
|
hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu)
|
|
@@ -256,7 +256,7 @@ void generic_smp_call_function_single_interrupt(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static DEFINE_PER_CPU(struct call_single_data, csd_data);
|
|
|
+static DEFINE_PER_CPU_SHARED_ALIGNED(struct call_single_data, csd_data);
|
|
|
|
|
|
/*
|
|
|
* smp_call_function_single - Run a function on a specific CPU
|