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 /drivers/md | |
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 'drivers/md')
-rw-r--r-- | drivers/md/bcache/bcache.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/closure.h | 2 | ||||
-rw-r--r-- | drivers/md/dm-bufio.c | 8 | ||||
-rw-r--r-- | drivers/md/dm-snap.c | 4 | ||||
-rw-r--r-- | drivers/md/dm.c | 2 | ||||
-rw-r--r-- | drivers/md/raid5.c | 2 |
6 files changed, 10 insertions, 10 deletions
diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h index 82c9c5d35251..d2ebcf323094 100644 --- a/drivers/md/bcache/bcache.h +++ b/drivers/md/bcache/bcache.h | |||
@@ -828,7 +828,7 @@ static inline bool cached_dev_get(struct cached_dev *dc) | |||
828 | return false; | 828 | return false; |
829 | 829 | ||
830 | /* Paired with the mb in cached_dev_attach */ | 830 | /* Paired with the mb in cached_dev_attach */ |
831 | smp_mb__after_atomic_inc(); | 831 | smp_mb__after_atomic(); |
832 | return true; | 832 | return true; |
833 | } | 833 | } |
834 | 834 | ||
diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h index 7ef7461912be..a08e3eeac3c5 100644 --- a/drivers/md/bcache/closure.h +++ b/drivers/md/bcache/closure.h | |||
@@ -243,7 +243,7 @@ static inline void set_closure_fn(struct closure *cl, closure_fn *fn, | |||
243 | cl->fn = fn; | 243 | cl->fn = fn; |
244 | cl->wq = wq; | 244 | cl->wq = wq; |
245 | /* between atomic_dec() in closure_put() */ | 245 | /* between atomic_dec() in closure_put() */ |
246 | smp_mb__before_atomic_dec(); | 246 | smp_mb__before_atomic(); |
247 | } | 247 | } |
248 | 248 | ||
249 | static inline void closure_queue(struct closure *cl) | 249 | static inline void closure_queue(struct closure *cl) |
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c index 66c5d130c8c2..4e84095833db 100644 --- a/drivers/md/dm-bufio.c +++ b/drivers/md/dm-bufio.c | |||
@@ -607,9 +607,9 @@ static void write_endio(struct bio *bio, int error) | |||
607 | 607 | ||
608 | BUG_ON(!test_bit(B_WRITING, &b->state)); | 608 | BUG_ON(!test_bit(B_WRITING, &b->state)); |
609 | 609 | ||
610 | smp_mb__before_clear_bit(); | 610 | smp_mb__before_atomic(); |
611 | clear_bit(B_WRITING, &b->state); | 611 | clear_bit(B_WRITING, &b->state); |
612 | smp_mb__after_clear_bit(); | 612 | smp_mb__after_atomic(); |
613 | 613 | ||
614 | wake_up_bit(&b->state, B_WRITING); | 614 | wake_up_bit(&b->state, B_WRITING); |
615 | } | 615 | } |
@@ -997,9 +997,9 @@ static void read_endio(struct bio *bio, int error) | |||
997 | 997 | ||
998 | BUG_ON(!test_bit(B_READING, &b->state)); | 998 | BUG_ON(!test_bit(B_READING, &b->state)); |
999 | 999 | ||
1000 | smp_mb__before_clear_bit(); | 1000 | smp_mb__before_atomic(); |
1001 | clear_bit(B_READING, &b->state); | 1001 | clear_bit(B_READING, &b->state); |
1002 | smp_mb__after_clear_bit(); | 1002 | smp_mb__after_atomic(); |
1003 | 1003 | ||
1004 | wake_up_bit(&b->state, B_READING); | 1004 | wake_up_bit(&b->state, B_READING); |
1005 | } | 1005 | } |
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c index ebddef5237e4..8e0caed0bf74 100644 --- a/drivers/md/dm-snap.c +++ b/drivers/md/dm-snap.c | |||
@@ -642,7 +642,7 @@ static void free_pending_exception(struct dm_snap_pending_exception *pe) | |||
642 | struct dm_snapshot *s = pe->snap; | 642 | struct dm_snapshot *s = pe->snap; |
643 | 643 | ||
644 | mempool_free(pe, s->pending_pool); | 644 | mempool_free(pe, s->pending_pool); |
645 | smp_mb__before_atomic_dec(); | 645 | smp_mb__before_atomic(); |
646 | atomic_dec(&s->pending_exceptions_count); | 646 | atomic_dec(&s->pending_exceptions_count); |
647 | } | 647 | } |
648 | 648 | ||
@@ -783,7 +783,7 @@ static int init_hash_tables(struct dm_snapshot *s) | |||
783 | static void merge_shutdown(struct dm_snapshot *s) | 783 | static void merge_shutdown(struct dm_snapshot *s) |
784 | { | 784 | { |
785 | clear_bit_unlock(RUNNING_MERGE, &s->state_bits); | 785 | clear_bit_unlock(RUNNING_MERGE, &s->state_bits); |
786 | smp_mb__after_clear_bit(); | 786 | smp_mb__after_atomic(); |
787 | wake_up_bit(&s->state_bits, RUNNING_MERGE); | 787 | wake_up_bit(&s->state_bits, RUNNING_MERGE); |
788 | } | 788 | } |
789 | 789 | ||
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 6a71bc7c9133..aa9e093343d4 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
@@ -2446,7 +2446,7 @@ static void dm_wq_work(struct work_struct *work) | |||
2446 | static void dm_queue_flush(struct mapped_device *md) | 2446 | static void dm_queue_flush(struct mapped_device *md) |
2447 | { | 2447 | { |
2448 | clear_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags); | 2448 | clear_bit(DMF_BLOCK_IO_FOR_SUSPEND, &md->flags); |
2449 | smp_mb__after_clear_bit(); | 2449 | smp_mb__after_atomic(); |
2450 | queue_work(md->wq, &md->work); | 2450 | queue_work(md->wq, &md->work); |
2451 | } | 2451 | } |
2452 | 2452 | ||
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index ad1b9bea446e..2afef4ec9312 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -4400,7 +4400,7 @@ static void raid5_unplug(struct blk_plug_cb *blk_cb, bool from_schedule) | |||
4400 | * STRIPE_ON_UNPLUG_LIST clear but the stripe | 4400 | * STRIPE_ON_UNPLUG_LIST clear but the stripe |
4401 | * is still in our list | 4401 | * is still in our list |
4402 | */ | 4402 | */ |
4403 | smp_mb__before_clear_bit(); | 4403 | smp_mb__before_atomic(); |
4404 | clear_bit(STRIPE_ON_UNPLUG_LIST, &sh->state); | 4404 | clear_bit(STRIPE_ON_UNPLUG_LIST, &sh->state); |
4405 | /* | 4405 | /* |
4406 | * STRIPE_ON_RELEASE_LIST could be set here. In that | 4406 | * STRIPE_ON_RELEASE_LIST could be set here. In that |