|
@@ -116,6 +116,22 @@ repeat:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * raw_read_seqcount - Read the raw seqcount
|
|
|
+ * @s: pointer to seqcount_t
|
|
|
+ * Returns: count to be passed to read_seqcount_retry
|
|
|
+ *
|
|
|
+ * raw_read_seqcount opens a read critical section of the given
|
|
|
+ * seqcount without any lockdep checking and without checking or
|
|
|
+ * masking the LSB. Calling code is responsible for handling that.
|
|
|
+ */
|
|
|
+static inline unsigned raw_read_seqcount(const seqcount_t *s)
|
|
|
+{
|
|
|
+ unsigned ret = ACCESS_ONCE(s->sequence);
|
|
|
+ smp_rmb();
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* raw_read_seqcount_begin - start seq-read critical section w/o lockdep
|
|
|
* @s: pointer to seqcount_t
|