diff options
author | Peter Zijlstra <peterz@infradead.org> | 2013-09-10 06:15:23 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-09-25 08:07:54 -0400 |
commit | bdb43806589096ac4272fe1307e789846ac08d7c (patch) | |
tree | c854e7e508193766d5cbdd82e8709cfab5ea3be5 /kernel/softirq.c | |
parent | 01028747559ac6c6f642a7bbd2875cc4f66b2feb (diff) |
sched: Extract the basic add/sub preempt_count modifiers
Rewrite the preempt_count macros in order to extract the 3 basic
preempt_count value modifiers:
__preempt_count_add()
__preempt_count_sub()
and the new:
__preempt_count_dec_and_test()
And since we're at it anyway, replace the unconventional
$op_preempt_count names with the more conventional preempt_count_$op.
Since these basic operators are equivalent to the previous _notrace()
variants, do away with the _notrace() versions.
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/n/tip-ewbpdbupy9xpsjhg960zwbv8@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index a90de70cf1f3..3e88612fc87e 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -100,13 +100,13 @@ static void __local_bh_disable(unsigned long ip, unsigned int cnt) | |||
100 | 100 | ||
101 | raw_local_irq_save(flags); | 101 | raw_local_irq_save(flags); |
102 | /* | 102 | /* |
103 | * The preempt tracer hooks into add_preempt_count and will break | 103 | * The preempt tracer hooks into preempt_count_add and will break |
104 | * lockdep because it calls back into lockdep after SOFTIRQ_OFFSET | 104 | * lockdep because it calls back into lockdep after SOFTIRQ_OFFSET |
105 | * is set and before current->softirq_enabled is cleared. | 105 | * is set and before current->softirq_enabled is cleared. |
106 | * We must manually increment preempt_count here and manually | 106 | * We must manually increment preempt_count here and manually |
107 | * call the trace_preempt_off later. | 107 | * call the trace_preempt_off later. |
108 | */ | 108 | */ |
109 | add_preempt_count_notrace(cnt); | 109 | __preempt_count_add(cnt); |
110 | /* | 110 | /* |
111 | * Were softirqs turned off above: | 111 | * Were softirqs turned off above: |
112 | */ | 112 | */ |
@@ -120,7 +120,7 @@ static void __local_bh_disable(unsigned long ip, unsigned int cnt) | |||
120 | #else /* !CONFIG_TRACE_IRQFLAGS */ | 120 | #else /* !CONFIG_TRACE_IRQFLAGS */ |
121 | static inline void __local_bh_disable(unsigned long ip, unsigned int cnt) | 121 | static inline void __local_bh_disable(unsigned long ip, unsigned int cnt) |
122 | { | 122 | { |
123 | add_preempt_count(cnt); | 123 | preempt_count_add(cnt); |
124 | barrier(); | 124 | barrier(); |
125 | } | 125 | } |
126 | #endif /* CONFIG_TRACE_IRQFLAGS */ | 126 | #endif /* CONFIG_TRACE_IRQFLAGS */ |
@@ -139,7 +139,7 @@ static void __local_bh_enable(unsigned int cnt) | |||
139 | 139 | ||
140 | if (softirq_count() == cnt) | 140 | if (softirq_count() == cnt) |
141 | trace_softirqs_on(_RET_IP_); | 141 | trace_softirqs_on(_RET_IP_); |
142 | sub_preempt_count(cnt); | 142 | preempt_count_sub(cnt); |
143 | } | 143 | } |
144 | 144 | ||
145 | /* | 145 | /* |
@@ -169,12 +169,12 @@ static inline void _local_bh_enable_ip(unsigned long ip) | |||
169 | * Keep preemption disabled until we are done with | 169 | * Keep preemption disabled until we are done with |
170 | * softirq processing: | 170 | * softirq processing: |
171 | */ | 171 | */ |
172 | sub_preempt_count(SOFTIRQ_DISABLE_OFFSET - 1); | 172 | preempt_count_sub(SOFTIRQ_DISABLE_OFFSET - 1); |
173 | 173 | ||
174 | if (unlikely(!in_interrupt() && local_softirq_pending())) | 174 | if (unlikely(!in_interrupt() && local_softirq_pending())) |
175 | do_softirq(); | 175 | do_softirq(); |
176 | 176 | ||
177 | dec_preempt_count(); | 177 | preempt_count_dec(); |
178 | #ifdef CONFIG_TRACE_IRQFLAGS | 178 | #ifdef CONFIG_TRACE_IRQFLAGS |
179 | local_irq_enable(); | 179 | local_irq_enable(); |
180 | #endif | 180 | #endif |
@@ -360,7 +360,7 @@ void irq_exit(void) | |||
360 | 360 | ||
361 | account_irq_exit_time(current); | 361 | account_irq_exit_time(current); |
362 | trace_hardirq_exit(); | 362 | trace_hardirq_exit(); |
363 | sub_preempt_count(HARDIRQ_OFFSET); | 363 | preempt_count_sub(HARDIRQ_OFFSET); |
364 | if (!in_interrupt() && local_softirq_pending()) | 364 | if (!in_interrupt() && local_softirq_pending()) |
365 | invoke_softirq(); | 365 | invoke_softirq(); |
366 | 366 | ||