diff options
Diffstat (limited to 'include/linux/preempt.h')
| -rw-r--r-- | include/linux/preempt.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/include/linux/preempt.h b/include/linux/preempt.h index 2e681d9555bd..58969b2a8a82 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h | |||
| @@ -27,6 +27,21 @@ | |||
| 27 | 27 | ||
| 28 | asmlinkage void preempt_schedule(void); | 28 | asmlinkage void preempt_schedule(void); |
| 29 | 29 | ||
| 30 | #define preempt_check_resched() \ | ||
| 31 | do { \ | ||
| 32 | if (unlikely(test_thread_flag(TIF_NEED_RESCHED))) \ | ||
| 33 | preempt_schedule(); \ | ||
| 34 | } while (0) | ||
| 35 | |||
| 36 | #else /* !CONFIG_PREEMPT */ | ||
| 37 | |||
| 38 | #define preempt_check_resched() do { } while (0) | ||
| 39 | |||
| 40 | #endif /* CONFIG_PREEMPT */ | ||
| 41 | |||
| 42 | |||
| 43 | #ifdef CONFIG_PREEMPT_COUNT | ||
| 44 | |||
| 30 | #define preempt_disable() \ | 45 | #define preempt_disable() \ |
| 31 | do { \ | 46 | do { \ |
| 32 | inc_preempt_count(); \ | 47 | inc_preempt_count(); \ |
| @@ -39,12 +54,6 @@ do { \ | |||
| 39 | dec_preempt_count(); \ | 54 | dec_preempt_count(); \ |
| 40 | } while (0) | 55 | } while (0) |
| 41 | 56 | ||
| 42 | #define preempt_check_resched() \ | ||
| 43 | do { \ | ||
| 44 | if (unlikely(test_thread_flag(TIF_NEED_RESCHED))) \ | ||
| 45 | preempt_schedule(); \ | ||
| 46 | } while (0) | ||
| 47 | |||
| 48 | #define preempt_enable() \ | 57 | #define preempt_enable() \ |
| 49 | do { \ | 58 | do { \ |
| 50 | preempt_enable_no_resched(); \ | 59 | preempt_enable_no_resched(); \ |
| @@ -80,18 +89,17 @@ do { \ | |||
| 80 | preempt_check_resched(); \ | 89 | preempt_check_resched(); \ |
| 81 | } while (0) | 90 | } while (0) |
| 82 | 91 | ||
| 83 | #else | 92 | #else /* !CONFIG_PREEMPT_COUNT */ |
| 84 | 93 | ||
| 85 | #define preempt_disable() do { } while (0) | 94 | #define preempt_disable() do { } while (0) |
| 86 | #define preempt_enable_no_resched() do { } while (0) | 95 | #define preempt_enable_no_resched() do { } while (0) |
| 87 | #define preempt_enable() do { } while (0) | 96 | #define preempt_enable() do { } while (0) |
| 88 | #define preempt_check_resched() do { } while (0) | ||
| 89 | 97 | ||
| 90 | #define preempt_disable_notrace() do { } while (0) | 98 | #define preempt_disable_notrace() do { } while (0) |
| 91 | #define preempt_enable_no_resched_notrace() do { } while (0) | 99 | #define preempt_enable_no_resched_notrace() do { } while (0) |
| 92 | #define preempt_enable_notrace() do { } while (0) | 100 | #define preempt_enable_notrace() do { } while (0) |
| 93 | 101 | ||
| 94 | #endif | 102 | #endif /* CONFIG_PREEMPT_COUNT */ |
| 95 | 103 | ||
| 96 | #ifdef CONFIG_PREEMPT_NOTIFIERS | 104 | #ifdef CONFIG_PREEMPT_NOTIFIERS |
| 97 | 105 | ||
