| From 877ef4ee191f7a7f1f39eba9f6e4675efbff2194 Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Fri, 24 Jul 2009 12:38:56 +0200 |
| Subject: [PATCH 063/262] preempt: Provide preempt_*_(no)rt variants |
| |
| RT needs a few preempt_disable/enable points which are not necessary |
| otherwise. Implement variants to avoid #ifdeffery. |
| |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| --- |
| include/linux/preempt.h | 20 ++++++++++++++++++-- |
| 1 file changed, 18 insertions(+), 2 deletions(-) |
| |
| diff --git a/include/linux/preempt.h b/include/linux/preempt.h |
| index 5a710b9..5b46536 100644 |
| --- a/include/linux/preempt.h |
| +++ b/include/linux/preempt.h |
| @@ -54,11 +54,15 @@ do { \ |
| dec_preempt_count(); \ |
| } while (0) |
| |
| -#define preempt_enable_no_resched() sched_preempt_enable_no_resched() |
| +#ifndef CONFIG_PREEMPT_RT_BASE |
| +# define preempt_enable_no_resched() sched_preempt_enable_no_resched() |
| +#else |
| +# define preempt_enable_no_resched() preempt_enable() |
| +#endif |
| |
| #define preempt_enable() \ |
| do { \ |
| - preempt_enable_no_resched(); \ |
| + sched_preempt_enable_no_resched(); \ |
| barrier(); \ |
| preempt_check_resched(); \ |
| } while (0) |
| @@ -104,6 +108,18 @@ do { \ |
| |
| #endif /* CONFIG_PREEMPT_COUNT */ |
| |
| +#ifdef CONFIG_PREEMPT_RT_FULL |
| +# define preempt_disable_rt() preempt_disable() |
| +# define preempt_enable_rt() preempt_enable() |
| +# define preempt_disable_nort() do { } while (0) |
| +# define preempt_enable_nort() do { } while (0) |
| +#else |
| +# define preempt_disable_rt() do { } while (0) |
| +# define preempt_enable_rt() do { } while (0) |
| +# define preempt_disable_nort() preempt_disable() |
| +# define preempt_enable_nort() preempt_enable() |
| +#endif |
| + |
| #ifdef CONFIG_PREEMPT_NOTIFIERS |
| |
| struct preempt_notifier; |
| -- |
| 1.7.10.4 |
| |