diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-05-22 05:36:10 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-05-22 05:36:10 -0400 |
commit | e14505a8d50882ff3bdd4b791b14d90a0881fa4d (patch) | |
tree | d2c3e9846b82b02187d33ebafb44fd6934bcd81f /kernel/softirq.c | |
parent | 4b660a7f5c8099d88d1a43d8ae138965112592c7 (diff) | |
parent | 61f38db3e3c0e4c3be0858750e2cabeadaecac0c (diff) |
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney:
" 1. Update RCU documentation. These were posted to LKML at
https://lkml.org/lkml/2014/4/28/634.
2. Miscellaneous fixes. These were posted to LKML at
https://lkml.org/lkml/2014/4/28/645.
3. Torture-test changes. These were posted to LKML at
https://lkml.org/lkml/2014/4/28/667.
4. Variable-name renaming cleanup, sent separately due to conflicts.
This was posted to LKML at https://lkml.org/lkml/2014/5/13/854.
5. Patch to suppress RCU stall warnings while sysrq requests are
being processed. This patch is the RCU portions of the patch
that Rik posted to LKML at https://lkml.org/lkml/2014/4/29/457.
The reason for pushing this patch ahead instead of waiting until
3.17 is that the NMI-based stack traces are messing up sysrq
output, and in some cases also messing up the system as well."
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/softirq.c')
-rw-r--r-- | kernel/softirq.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/softirq.c b/kernel/softirq.c index 92f24f5e8d52..5918d227730f 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -232,7 +232,6 @@ asmlinkage __visible void __do_softirq(void) | |||
232 | bool in_hardirq; | 232 | bool in_hardirq; |
233 | __u32 pending; | 233 | __u32 pending; |
234 | int softirq_bit; | 234 | int softirq_bit; |
235 | int cpu; | ||
236 | 235 | ||
237 | /* | 236 | /* |
238 | * Mask out PF_MEMALLOC s current task context is borrowed for the | 237 | * Mask out PF_MEMALLOC s current task context is borrowed for the |
@@ -247,7 +246,6 @@ asmlinkage __visible void __do_softirq(void) | |||
247 | __local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET); | 246 | __local_bh_disable_ip(_RET_IP_, SOFTIRQ_OFFSET); |
248 | in_hardirq = lockdep_softirq_start(); | 247 | in_hardirq = lockdep_softirq_start(); |
249 | 248 | ||
250 | cpu = smp_processor_id(); | ||
251 | restart: | 249 | restart: |
252 | /* Reset the pending bitmask before enabling irqs */ | 250 | /* Reset the pending bitmask before enabling irqs */ |
253 | set_softirq_pending(0); | 251 | set_softirq_pending(0); |
@@ -276,11 +274,11 @@ restart: | |||
276 | prev_count, preempt_count()); | 274 | prev_count, preempt_count()); |
277 | preempt_count_set(prev_count); | 275 | preempt_count_set(prev_count); |
278 | } | 276 | } |
279 | rcu_bh_qs(cpu); | ||
280 | h++; | 277 | h++; |
281 | pending >>= softirq_bit; | 278 | pending >>= softirq_bit; |
282 | } | 279 | } |
283 | 280 | ||
281 | rcu_bh_qs(smp_processor_id()); | ||
284 | local_irq_disable(); | 282 | local_irq_disable(); |
285 | 283 | ||
286 | pending = local_softirq_pending(); | 284 | pending = local_softirq_pending(); |