diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-03 15:35:05 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-03 15:35:05 -0400 |
commit | 59a3d4c3631e553357b7305dc09db1990aa6757c (patch) | |
tree | 7c55a2447dc7175d8701c600e5536e4a18d8388b /kernel/softirq.c | |
parent | ff806d034ef8e9a95ff0b0532104dd65332e446b (diff) | |
parent | e14505a8d50882ff3bdd4b791b14d90a0881fa4d (diff) |
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
Pull RCU changes from Ingo Molnar:
"The main RCU changes in this cycle were:
- RCU torture-test changes.
- variable-name renaming cleanup.
- update RCU documentation.
- miscellaneous fixes.
- patch to suppress RCU stall warnings while sysrq requests are being
processed"
* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (68 commits)
rcu: Provide API to suppress stall warnings while sysrc runs
rcu: Variable name changed in tree_plugin.h and used in tree.c
torture: Remove unused definition
torture: Remove __init from torture_init_begin/end
torture: Check for multiple concurrent torture tests
locktorture: Remove reference to nonexistent Kconfig parameter
rcutorture: Run rcu_torture_writer at normal priority
rcutorture: Note diffs from git commits
rcutorture: Add missing destroy_timer_on_stack()
rcutorture: Explicitly test synchronous grace-period primitives
rcutorture: Add tests for get_state_synchronize_rcu()
rcutorture: Test RCU-sched primitives in TREE_PREEMPT_RCU kernels
torture: Use elapsed time to detect hangs
rcutorture: Check for rcu_torture_fqs creation errors
torture: Better summary diagnostics for build failures
torture: Notice if an all-zero cpumask is passed inside a critical section
rcutorture: Make rcu_torture_reader() use cond_resched()
sched,rcu: Make cond_resched() report RCU quiescent states
percpu: Fix raw_cpu_inc_return()
rcutorture: Export RCU grace-period kthread wait state to rcutorture
...
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(); |