diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-03 15:57:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-03 15:57:53 -0400 |
commit | 776edb59317ada867dfcddde40b55648beeb0078 (patch) | |
tree | f6a6136374642323cfefd7d6399ea429f9018ade /net/core/dev.c | |
parent | 59a3d4c3631e553357b7305dc09db1990aa6757c (diff) | |
parent | 3cf2f34e1a3d4d5ff209d087925cf950e52f4805 (diff) |
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
Pull core locking updates from Ingo Molnar:
"The main changes in this cycle were:
- reduced/streamlined smp_mb__*() interface that allows more usecases
and makes the existing ones less buggy, especially in rarer
architectures
- add rwsem implementation comments
- bump up lockdep limits"
* 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
rwsem: Add comments to explain the meaning of the rwsem's count field
lockdep: Increase static allocations
arch: Mass conversion of smp_mb__*()
arch,doc: Convert smp_mb__*()
arch,xtensa: Convert smp_mb__*()
arch,x86: Convert smp_mb__*()
arch,tile: Convert smp_mb__*()
arch,sparc: Convert smp_mb__*()
arch,sh: Convert smp_mb__*()
arch,score: Convert smp_mb__*()
arch,s390: Convert smp_mb__*()
arch,powerpc: Convert smp_mb__*()
arch,parisc: Convert smp_mb__*()
arch,openrisc: Convert smp_mb__*()
arch,mn10300: Convert smp_mb__*()
arch,mips: Convert smp_mb__*()
arch,metag: Convert smp_mb__*()
arch,m68k: Convert smp_mb__*()
arch,m32r: Convert smp_mb__*()
arch,ia64: Convert smp_mb__*()
...
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 9abc503b19b7..8b07db37dc10 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1326,7 +1326,7 @@ static int __dev_close_many(struct list_head *head) | |||
1326 | * dev->stop() will invoke napi_disable() on all of it's | 1326 | * dev->stop() will invoke napi_disable() on all of it's |
1327 | * napi_struct instances on this device. | 1327 | * napi_struct instances on this device. |
1328 | */ | 1328 | */ |
1329 | smp_mb__after_clear_bit(); /* Commit netif_running(). */ | 1329 | smp_mb__after_atomic(); /* Commit netif_running(). */ |
1330 | } | 1330 | } |
1331 | 1331 | ||
1332 | dev_deactivate_many(head); | 1332 | dev_deactivate_many(head); |
@@ -3341,7 +3341,7 @@ static void net_tx_action(struct softirq_action *h) | |||
3341 | 3341 | ||
3342 | root_lock = qdisc_lock(q); | 3342 | root_lock = qdisc_lock(q); |
3343 | if (spin_trylock(root_lock)) { | 3343 | if (spin_trylock(root_lock)) { |
3344 | smp_mb__before_clear_bit(); | 3344 | smp_mb__before_atomic(); |
3345 | clear_bit(__QDISC_STATE_SCHED, | 3345 | clear_bit(__QDISC_STATE_SCHED, |
3346 | &q->state); | 3346 | &q->state); |
3347 | qdisc_run(q); | 3347 | qdisc_run(q); |
@@ -3351,7 +3351,7 @@ static void net_tx_action(struct softirq_action *h) | |||
3351 | &q->state)) { | 3351 | &q->state)) { |
3352 | __netif_reschedule(q); | 3352 | __netif_reschedule(q); |
3353 | } else { | 3353 | } else { |
3354 | smp_mb__before_clear_bit(); | 3354 | smp_mb__before_atomic(); |
3355 | clear_bit(__QDISC_STATE_SCHED, | 3355 | clear_bit(__QDISC_STATE_SCHED, |
3356 | &q->state); | 3356 | &q->state); |
3357 | } | 3357 | } |
@@ -4243,7 +4243,7 @@ void __napi_complete(struct napi_struct *n) | |||
4243 | BUG_ON(n->gro_list); | 4243 | BUG_ON(n->gro_list); |
4244 | 4244 | ||
4245 | list_del(&n->poll_list); | 4245 | list_del(&n->poll_list); |
4246 | smp_mb__before_clear_bit(); | 4246 | smp_mb__before_atomic(); |
4247 | clear_bit(NAPI_STATE_SCHED, &n->state); | 4247 | clear_bit(NAPI_STATE_SCHED, &n->state); |
4248 | } | 4248 | } |
4249 | EXPORT_SYMBOL(__napi_complete); | 4249 | EXPORT_SYMBOL(__napi_complete); |