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 /include/linux/interrupt.h | |
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 'include/linux/interrupt.h')
-rw-r--r-- | include/linux/interrupt.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 051c85032f48..cb19f09d7e3e 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
@@ -491,7 +491,7 @@ static inline int tasklet_trylock(struct tasklet_struct *t) | |||
491 | 491 | ||
492 | static inline void tasklet_unlock(struct tasklet_struct *t) | 492 | static inline void tasklet_unlock(struct tasklet_struct *t) |
493 | { | 493 | { |
494 | smp_mb__before_clear_bit(); | 494 | smp_mb__before_atomic(); |
495 | clear_bit(TASKLET_STATE_RUN, &(t)->state); | 495 | clear_bit(TASKLET_STATE_RUN, &(t)->state); |
496 | } | 496 | } |
497 | 497 | ||
@@ -539,7 +539,7 @@ static inline void tasklet_hi_schedule_first(struct tasklet_struct *t) | |||
539 | static inline void tasklet_disable_nosync(struct tasklet_struct *t) | 539 | static inline void tasklet_disable_nosync(struct tasklet_struct *t) |
540 | { | 540 | { |
541 | atomic_inc(&t->count); | 541 | atomic_inc(&t->count); |
542 | smp_mb__after_atomic_inc(); | 542 | smp_mb__after_atomic(); |
543 | } | 543 | } |
544 | 544 | ||
545 | static inline void tasklet_disable(struct tasklet_struct *t) | 545 | static inline void tasklet_disable(struct tasklet_struct *t) |
@@ -551,13 +551,13 @@ static inline void tasklet_disable(struct tasklet_struct *t) | |||
551 | 551 | ||
552 | static inline void tasklet_enable(struct tasklet_struct *t) | 552 | static inline void tasklet_enable(struct tasklet_struct *t) |
553 | { | 553 | { |
554 | smp_mb__before_atomic_dec(); | 554 | smp_mb__before_atomic(); |
555 | atomic_dec(&t->count); | 555 | atomic_dec(&t->count); |
556 | } | 556 | } |
557 | 557 | ||
558 | static inline void tasklet_hi_enable(struct tasklet_struct *t) | 558 | static inline void tasklet_hi_enable(struct tasklet_struct *t) |
559 | { | 559 | { |
560 | smp_mb__before_atomic_dec(); | 560 | smp_mb__before_atomic(); |
561 | atomic_dec(&t->count); | 561 | atomic_dec(&t->count); |
562 | } | 562 | } |
563 | 563 | ||