diff options
author | John Stultz <john.stultz@linaro.org> | 2014-01-02 18:11:13 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-01-12 04:13:59 -0500 |
commit | 0c3351d451ae2fa438d5d1ed719fc43354fbffbb (patch) | |
tree | 02aaeaf81e234fdecf232651d35b304909200773 /include | |
parent | 228fdc083b017eaf90e578fa86fb1ecfd5ffae87 (diff) |
seqlock: Use raw_ prefix instead of _no_lockdep
Linus disliked the _no_lockdep() naming, so instead
use the more-consistent raw_* prefix to the non-lockdep
enabled seqcount methods.
This also adds raw_ methods for the write operations
as well, which will be utilized in a following patch.
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: Krzysztof Hałasa <khalasa@piap.pl>
Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Willy Tarreau <w@1wt.eu>
Link: http://lkml.kernel.org/r/1388704274-5278-1-git-send-email-john.stultz@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/seqlock.h | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index cf87a24c0f92..535f158977b9 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h | |||
@@ -117,15 +117,15 @@ repeat: | |||
117 | } | 117 | } |
118 | 118 | ||
119 | /** | 119 | /** |
120 | * read_seqcount_begin_no_lockdep - start seq-read critical section w/o lockdep | 120 | * raw_read_seqcount_begin - start seq-read critical section w/o lockdep |
121 | * @s: pointer to seqcount_t | 121 | * @s: pointer to seqcount_t |
122 | * Returns: count to be passed to read_seqcount_retry | 122 | * Returns: count to be passed to read_seqcount_retry |
123 | * | 123 | * |
124 | * read_seqcount_begin_no_lockdep opens a read critical section of the given | 124 | * raw_read_seqcount_begin opens a read critical section of the given |
125 | * seqcount, but without any lockdep checking. Validity of the critical | 125 | * seqcount, but without any lockdep checking. Validity of the critical |
126 | * section is tested by checking read_seqcount_retry function. | 126 | * section is tested by checking read_seqcount_retry function. |
127 | */ | 127 | */ |
128 | static inline unsigned read_seqcount_begin_no_lockdep(const seqcount_t *s) | 128 | static inline unsigned raw_read_seqcount_begin(const seqcount_t *s) |
129 | { | 129 | { |
130 | unsigned ret = __read_seqcount_begin(s); | 130 | unsigned ret = __read_seqcount_begin(s); |
131 | smp_rmb(); | 131 | smp_rmb(); |
@@ -144,7 +144,7 @@ static inline unsigned read_seqcount_begin_no_lockdep(const seqcount_t *s) | |||
144 | static inline unsigned read_seqcount_begin(const seqcount_t *s) | 144 | static inline unsigned read_seqcount_begin(const seqcount_t *s) |
145 | { | 145 | { |
146 | seqcount_lockdep_reader_access(s); | 146 | seqcount_lockdep_reader_access(s); |
147 | return read_seqcount_begin_no_lockdep(s); | 147 | return raw_read_seqcount_begin(s); |
148 | } | 148 | } |
149 | 149 | ||
150 | /** | 150 | /** |
@@ -206,14 +206,26 @@ static inline int read_seqcount_retry(const seqcount_t *s, unsigned start) | |||
206 | } | 206 | } |
207 | 207 | ||
208 | 208 | ||
209 | |||
210 | static inline void raw_write_seqcount_begin(seqcount_t *s) | ||
211 | { | ||
212 | s->sequence++; | ||
213 | smp_wmb(); | ||
214 | } | ||
215 | |||
216 | static inline void raw_write_seqcount_end(seqcount_t *s) | ||
217 | { | ||
218 | smp_wmb(); | ||
219 | s->sequence++; | ||
220 | } | ||
221 | |||
209 | /* | 222 | /* |
210 | * Sequence counter only version assumes that callers are using their | 223 | * Sequence counter only version assumes that callers are using their |
211 | * own mutexing. | 224 | * own mutexing. |
212 | */ | 225 | */ |
213 | static inline void write_seqcount_begin_nested(seqcount_t *s, int subclass) | 226 | static inline void write_seqcount_begin_nested(seqcount_t *s, int subclass) |
214 | { | 227 | { |
215 | s->sequence++; | 228 | raw_write_seqcount_begin(s); |
216 | smp_wmb(); | ||
217 | seqcount_acquire(&s->dep_map, subclass, 0, _RET_IP_); | 229 | seqcount_acquire(&s->dep_map, subclass, 0, _RET_IP_); |
218 | } | 230 | } |
219 | 231 | ||
@@ -225,8 +237,7 @@ static inline void write_seqcount_begin(seqcount_t *s) | |||
225 | static inline void write_seqcount_end(seqcount_t *s) | 237 | static inline void write_seqcount_end(seqcount_t *s) |
226 | { | 238 | { |
227 | seqcount_release(&s->dep_map, 1, _RET_IP_); | 239 | seqcount_release(&s->dep_map, 1, _RET_IP_); |
228 | smp_wmb(); | 240 | raw_write_seqcount_end(s); |
229 | s->sequence++; | ||
230 | } | 241 | } |
231 | 242 | ||
232 | /** | 243 | /** |