2012-06-17 19:52:06 +00:00
|
|
|
From e00e0254aa4ab633017de029ae89def84898e920 Mon Sep 17 00:00:00 2001
|
2011-11-20 00:01:55 +00:00
|
|
|
From: Thomas Gleixner <tglx@linutronix.de>
|
|
|
|
Date: Tue, 28 Jun 2011 20:42:16 +0200
|
2012-06-17 19:52:06 +00:00
|
|
|
Subject: [169/254] local-vars-migrate-disable.patch
|
2011-11-20 00:01:55 +00:00
|
|
|
|
|
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
|
|
---
|
|
|
|
include/linux/percpu.h | 28 ++++++++++++++++++++++++----
|
|
|
|
1 file changed, 24 insertions(+), 4 deletions(-)
|
|
|
|
|
2012-06-17 19:52:06 +00:00
|
|
|
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
|
|
|
|
index 3d13ce0..5a56f183 100644
|
|
|
|
--- a/include/linux/percpu.h
|
|
|
|
+++ b/include/linux/percpu.h
|
2011-11-20 00:01:55 +00:00
|
|
|
@@ -48,10 +48,30 @@
|
|
|
|
preempt_enable(); \
|
|
|
|
} while (0)
|
|
|
|
|
|
|
|
-#define get_local_var(var) get_cpu_var(var)
|
|
|
|
-#define put_local_var(var) put_cpu_var(var)
|
|
|
|
-#define get_local_ptr(var) get_cpu_ptr(var)
|
|
|
|
-#define put_local_ptr(var) put_cpu_ptr(var)
|
|
|
|
+#ifndef CONFIG_PREEMPT_RT_FULL
|
|
|
|
+# define get_local_var(var) get_cpu_var(var)
|
|
|
|
+# define put_local_var(var) put_cpu_var(var)
|
|
|
|
+# define get_local_ptr(var) get_cpu_ptr(var)
|
|
|
|
+# define put_local_ptr(var) put_cpu_ptr(var)
|
|
|
|
+#else
|
|
|
|
+# define get_local_var(var) (*({ \
|
|
|
|
+ migrate_disable(); \
|
|
|
|
+ &__get_cpu_var(var); }))
|
|
|
|
+
|
|
|
|
+# define put_local_var(var) do { \
|
|
|
|
+ (void)&(var); \
|
|
|
|
+ migrate_enable(); \
|
|
|
|
+} while (0)
|
|
|
|
+
|
|
|
|
+# define get_local_ptr(var) ({ \
|
|
|
|
+ migrate_disable(); \
|
|
|
|
+ this_cpu_ptr(var); })
|
|
|
|
+
|
|
|
|
+# define put_local_ptr(var) do { \
|
|
|
|
+ (void)(var); \
|
|
|
|
+ migrate_enable(); \
|
|
|
|
+} while (0)
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
/* minimum unit size, also is the maximum supported allocation size */
|
|
|
|
#define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
|