From: Steven Rostedt <rostedt@goodmis.org>
revert: seqlock-remove-unused-functions.patch
Revert:
Author: Thomas Gleixner [off-list ref]
Date: Sat Jul 16 18:38:22 2011 +0200
seqlock-remove-unused-functions.patch
Signed-off-by: Thomas Gleixner [off-list ref]
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/linux/seqlock.h | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
index b990f6e..c6db9fb 100644
--- a/include/linux/seqlock.h
+++ b/include/linux/seqlock.h
@@ -69,6 +69,17 @@ static inline void write_sequnlock(seqlock_t *sl)
spin_unlock(&sl->lock);
}
+static inline int write_tryseqlock(seqlock_t *sl)
+{
+ int ret = spin_trylock(&sl->lock);
+
+ if (ret) {
+ ++sl->sequence;
+ smp_wmb();
+ }
+ return ret;
+}
+
/* Start of read calculation -- fetch last complete writer token */
static __always_inline unsigned read_seqbegin(const seqlock_t *sl)
{@@ -237,4 +248,14 @@ static inline void write_seqcount_barrier(seqcount_t *s)
#define write_sequnlock_bh(lock) \
do { write_sequnlock(lock); local_bh_enable(); } while(0)
+#define read_seqbegin_irqsave(lock, flags) \
+ ({ local_irq_save(flags); read_seqbegin(lock); })
+
+#define read_seqretry_irqrestore(lock, iv, flags) \
+ ({ \
+ int ret = read_seqretry(lock, iv); \
+ local_irq_restore(flags); \
+ ret; \
+ })
+
#endif /* __LINUX_SEQLOCK_H */--
1.7.8.3