| From 63dba19c0756850925e708097c2c7d03cbc46633 Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Tue, 28 Jun 2011 20:42:16 +0200 |
| Subject: [PATCH 169/268] local-vars-migrate-disable.patch |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| --- |
| include/linux/percpu.h | 28 ++++++++++++++++++++++++---- |
| 1 file changed, 24 insertions(+), 4 deletions(-) |
| |
| 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 |
| @@ -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) |
| -- |
| 1.7.10.4 |
| |