summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/osq_lock.h8
-rw-r--r--include/linux/rwsem.h2
2 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/osq_lock.h b/include/linux/osq_lock.h
index b001682bf7cb..90230d5811c5 100644
--- a/include/linux/osq_lock.h
+++ b/include/linux/osq_lock.h
@@ -16,4 +16,12 @@ struct optimistic_spin_queue {
atomic_t tail;
};
+/* Init macro and function. */
+#define OSQ_LOCK_UNLOCKED { ATOMIC_INIT(OSQ_UNLOCKED_VAL) }
+
+static inline void osq_lock_init(struct optimistic_spin_queue *lock)
+{
+ atomic_set(&lock->tail, OSQ_UNLOCKED_VAL);
+}
+
#endif
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h
index 9fdcdd03507d..25cd9aa2f3d7 100644
--- a/include/linux/rwsem.h
+++ b/include/linux/rwsem.h
@@ -69,7 +69,7 @@ static inline int rwsem_is_locked(struct rw_semaphore *sem)
__RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \
LIST_HEAD_INIT((name).wait_list), \
NULL, /* owner */ \
- { ATOMIC_INIT(OSQ_UNLOCKED_VAL) } /* osq */ \
+ OSQ_LOCK_UNLOCKED /* osq */ \
__RWSEM_DEP_MAP_INIT(name) }
#else
#define __RWSEM_INITIALIZER(name) \