]> rtime.felk.cvut.cz Git - zynq/linux.git/blobdiff - include/linux/percpu.h
Apply preempt_rt patch-4.9-rt1.patch.xz
[zynq/linux.git] / include / linux / percpu.h
index 56939d3f6e531baa21d7770e5ee8f256f3957c86..1c7e33fc83e43dc7ff6f3c3c8aa0c73f2950cf68 100644 (file)
 #define PERCPU_MODULE_RESERVE          0
 #endif
 
+#ifdef CONFIG_PREEMPT_RT_FULL
+
+#define get_local_var(var) (*({        \
+       migrate_disable();      \
+       this_cpu_ptr(&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)
+
+#else
+
+#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)
+
+#endif
+
 /* minimum unit size, also is the maximum supported allocation size */
 #define PCPU_MIN_UNIT_SIZE             PFN_ALIGN(32 << 10)