| Date | Tue, 29 Sep 2015 11:28:33 +0200 | From | Peter Zijlstra <> | Subject | [RFC][PATCH 08/11] sched: Simplify preempt_count tests |
| |
Since we stopped setting PREEMPT_ACTIVE, there is no need to mask it out of preempt_count() tests.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- include/linux/preempt.h | 3 +-- kernel/sched/core.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-)
--- a/include/linux/preempt.h +++ b/include/linux/preempt.h @@ -126,8 +126,7 @@ * Check whether we were atomic before we did preempt_disable(): * (used by the scheduler) */ -#define in_atomic_preempt_off() \ - ((preempt_count() & ~PREEMPT_ACTIVE) != PREEMPT_DISABLE_OFFSET) +#define in_atomic_preempt_off() (preempt_count() != PREEMPT_DISABLE_OFFSET) #if defined(CONFIG_DEBUG_PREEMPT) || defined(CONFIG_PREEMPT_TRACER) extern void preempt_count_add(int val); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -7472,7 +7472,7 @@ void __init sched_init(void) #ifdef CONFIG_DEBUG_ATOMIC_SLEEP static inline int preempt_count_equals(int preempt_offset) { - int nested = (preempt_count() & ~PREEMPT_ACTIVE) + rcu_preempt_depth(); + int nested = preempt_count() + rcu_preempt_depth(); return (nested == preempt_offset); }
|