diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-07-03 03:24:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-03 18:27:01 -0400 |
commit | c4e05116a2c4d8187127dbf77ab790aa57a47388 (patch) | |
tree | 58f07aed47ee4d30e9588d5a820c245faa163b09 /include | |
parent | 8b3db9c542e18b71d4820da4dd9401ee030feacb (diff) |
[PATCH] lockdep: clean up rwsems
Clean up rwsems.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-i386/rwsem.h | 17 | ||||
-rw-r--r-- | include/linux/rwsem-spinlock.h | 14 | ||||
-rw-r--r-- | include/linux/rwsem.h | 24 |
3 files changed, 2 insertions, 53 deletions
diff --git a/include/asm-i386/rwsem.h b/include/asm-i386/rwsem.h index be4ab859238e..558804e4a039 100644 --- a/include/asm-i386/rwsem.h +++ b/include/asm-i386/rwsem.h | |||
@@ -61,23 +61,11 @@ struct rw_semaphore { | |||
61 | #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) | 61 | #define RWSEM_ACTIVE_WRITE_BIAS (RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS) |
62 | spinlock_t wait_lock; | 62 | spinlock_t wait_lock; |
63 | struct list_head wait_list; | 63 | struct list_head wait_list; |
64 | #if RWSEM_DEBUG | ||
65 | int debug; | ||
66 | #endif | ||
67 | }; | 64 | }; |
68 | 65 | ||
69 | /* | ||
70 | * initialisation | ||
71 | */ | ||
72 | #if RWSEM_DEBUG | ||
73 | #define __RWSEM_DEBUG_INIT , 0 | ||
74 | #else | ||
75 | #define __RWSEM_DEBUG_INIT /* */ | ||
76 | #endif | ||
77 | |||
78 | #define __RWSEM_INITIALIZER(name) \ | 66 | #define __RWSEM_INITIALIZER(name) \ |
79 | { RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) \ | 67 | { RWSEM_UNLOCKED_VALUE, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) \ |
80 | __RWSEM_DEBUG_INIT } | 68 | } |
81 | 69 | ||
82 | #define DECLARE_RWSEM(name) \ | 70 | #define DECLARE_RWSEM(name) \ |
83 | struct rw_semaphore name = __RWSEM_INITIALIZER(name) | 71 | struct rw_semaphore name = __RWSEM_INITIALIZER(name) |
@@ -87,9 +75,6 @@ static inline void init_rwsem(struct rw_semaphore *sem) | |||
87 | sem->count = RWSEM_UNLOCKED_VALUE; | 75 | sem->count = RWSEM_UNLOCKED_VALUE; |
88 | spin_lock_init(&sem->wait_lock); | 76 | spin_lock_init(&sem->wait_lock); |
89 | INIT_LIST_HEAD(&sem->wait_list); | 77 | INIT_LIST_HEAD(&sem->wait_list); |
90 | #if RWSEM_DEBUG | ||
91 | sem->debug = 0; | ||
92 | #endif | ||
93 | } | 78 | } |
94 | 79 | ||
95 | /* | 80 | /* |
diff --git a/include/linux/rwsem-spinlock.h b/include/linux/rwsem-spinlock.h index f30f805080ae..d68afcc36ac9 100644 --- a/include/linux/rwsem-spinlock.h +++ b/include/linux/rwsem-spinlock.h | |||
@@ -32,22 +32,10 @@ struct rw_semaphore { | |||
32 | __s32 activity; | 32 | __s32 activity; |
33 | spinlock_t wait_lock; | 33 | spinlock_t wait_lock; |
34 | struct list_head wait_list; | 34 | struct list_head wait_list; |
35 | #if RWSEM_DEBUG | ||
36 | int debug; | ||
37 | #endif | ||
38 | }; | 35 | }; |
39 | 36 | ||
40 | /* | ||
41 | * initialisation | ||
42 | */ | ||
43 | #if RWSEM_DEBUG | ||
44 | #define __RWSEM_DEBUG_INIT , 0 | ||
45 | #else | ||
46 | #define __RWSEM_DEBUG_INIT /* */ | ||
47 | #endif | ||
48 | |||
49 | #define __RWSEM_INITIALIZER(name) \ | 37 | #define __RWSEM_INITIALIZER(name) \ |
50 | { 0, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) __RWSEM_DEBUG_INIT } | 38 | { 0, SPIN_LOCK_UNLOCKED, LIST_HEAD_INIT((name).wait_list) } |
51 | 39 | ||
52 | #define DECLARE_RWSEM(name) \ | 40 | #define DECLARE_RWSEM(name) \ |
53 | struct rw_semaphore name = __RWSEM_INITIALIZER(name) | 41 | struct rw_semaphore name = __RWSEM_INITIALIZER(name) |
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index f99fe90732ab..93581534b915 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h | |||
@@ -9,8 +9,6 @@ | |||
9 | 9 | ||
10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
11 | 11 | ||
12 | #define RWSEM_DEBUG 0 | ||
13 | |||
14 | #ifdef __KERNEL__ | 12 | #ifdef __KERNEL__ |
15 | 13 | ||
16 | #include <linux/types.h> | 14 | #include <linux/types.h> |
@@ -26,23 +24,13 @@ struct rw_semaphore; | |||
26 | #include <asm/rwsem.h> /* use an arch-specific implementation */ | 24 | #include <asm/rwsem.h> /* use an arch-specific implementation */ |
27 | #endif | 25 | #endif |
28 | 26 | ||
29 | #ifndef rwsemtrace | ||
30 | #if RWSEM_DEBUG | ||
31 | extern void FASTCALL(rwsemtrace(struct rw_semaphore *sem, const char *str)); | ||
32 | #else | ||
33 | #define rwsemtrace(SEM,FMT) | ||
34 | #endif | ||
35 | #endif | ||
36 | |||
37 | /* | 27 | /* |
38 | * lock for reading | 28 | * lock for reading |
39 | */ | 29 | */ |
40 | static inline void down_read(struct rw_semaphore *sem) | 30 | static inline void down_read(struct rw_semaphore *sem) |
41 | { | 31 | { |
42 | might_sleep(); | 32 | might_sleep(); |
43 | rwsemtrace(sem,"Entering down_read"); | ||
44 | __down_read(sem); | 33 | __down_read(sem); |
45 | rwsemtrace(sem,"Leaving down_read"); | ||
46 | } | 34 | } |
47 | 35 | ||
48 | /* | 36 | /* |
@@ -51,9 +39,7 @@ static inline void down_read(struct rw_semaphore *sem) | |||
51 | static inline int down_read_trylock(struct rw_semaphore *sem) | 39 | static inline int down_read_trylock(struct rw_semaphore *sem) |
52 | { | 40 | { |
53 | int ret; | 41 | int ret; |
54 | rwsemtrace(sem,"Entering down_read_trylock"); | ||
55 | ret = __down_read_trylock(sem); | 42 | ret = __down_read_trylock(sem); |
56 | rwsemtrace(sem,"Leaving down_read_trylock"); | ||
57 | return ret; | 43 | return ret; |
58 | } | 44 | } |
59 | 45 | ||
@@ -63,9 +49,7 @@ static inline int down_read_trylock(struct rw_semaphore *sem) | |||
63 | static inline void down_write(struct rw_semaphore *sem) | 49 | static inline void down_write(struct rw_semaphore *sem) |
64 | { | 50 | { |
65 | might_sleep(); | 51 | might_sleep(); |
66 | rwsemtrace(sem,"Entering down_write"); | ||
67 | __down_write(sem); | 52 | __down_write(sem); |
68 | rwsemtrace(sem,"Leaving down_write"); | ||
69 | } | 53 | } |
70 | 54 | ||
71 | /* | 55 | /* |
@@ -74,9 +58,7 @@ static inline void down_write(struct rw_semaphore *sem) | |||
74 | static inline int down_write_trylock(struct rw_semaphore *sem) | 58 | static inline int down_write_trylock(struct rw_semaphore *sem) |
75 | { | 59 | { |
76 | int ret; | 60 | int ret; |
77 | rwsemtrace(sem,"Entering down_write_trylock"); | ||
78 | ret = __down_write_trylock(sem); | 61 | ret = __down_write_trylock(sem); |
79 | rwsemtrace(sem,"Leaving down_write_trylock"); | ||
80 | return ret; | 62 | return ret; |
81 | } | 63 | } |
82 | 64 | ||
@@ -85,9 +67,7 @@ static inline int down_write_trylock(struct rw_semaphore *sem) | |||
85 | */ | 67 | */ |
86 | static inline void up_read(struct rw_semaphore *sem) | 68 | static inline void up_read(struct rw_semaphore *sem) |
87 | { | 69 | { |
88 | rwsemtrace(sem,"Entering up_read"); | ||
89 | __up_read(sem); | 70 | __up_read(sem); |
90 | rwsemtrace(sem,"Leaving up_read"); | ||
91 | } | 71 | } |
92 | 72 | ||
93 | /* | 73 | /* |
@@ -95,9 +75,7 @@ static inline void up_read(struct rw_semaphore *sem) | |||
95 | */ | 75 | */ |
96 | static inline void up_write(struct rw_semaphore *sem) | 76 | static inline void up_write(struct rw_semaphore *sem) |
97 | { | 77 | { |
98 | rwsemtrace(sem,"Entering up_write"); | ||
99 | __up_write(sem); | 78 | __up_write(sem); |
100 | rwsemtrace(sem,"Leaving up_write"); | ||
101 | } | 79 | } |
102 | 80 | ||
103 | /* | 81 | /* |
@@ -105,9 +83,7 @@ static inline void up_write(struct rw_semaphore *sem) | |||
105 | */ | 83 | */ |
106 | static inline void downgrade_write(struct rw_semaphore *sem) | 84 | static inline void downgrade_write(struct rw_semaphore *sem) |
107 | { | 85 | { |
108 | rwsemtrace(sem,"Entering downgrade_write"); | ||
109 | __downgrade_write(sem); | 86 | __downgrade_write(sem); |
110 | rwsemtrace(sem,"Leaving downgrade_write"); | ||
111 | } | 87 | } |
112 | 88 | ||
113 | #endif /* __KERNEL__ */ | 89 | #endif /* __KERNEL__ */ |