diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/rwsem.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/include/linux/rwsem.h b/include/linux/rwsem.h index 2ea18a3def04..148983e21d47 100644 --- a/include/linux/rwsem.h +++ b/include/linux/rwsem.h | |||
| @@ -34,12 +34,12 @@ | |||
| 34 | */ | 34 | */ |
| 35 | struct rw_semaphore { | 35 | struct rw_semaphore { |
| 36 | atomic_long_t count; | 36 | atomic_long_t count; |
| 37 | #ifdef CONFIG_RWSEM_SPIN_ON_OWNER | ||
| 38 | /* | 37 | /* |
| 39 | * Write owner. Used as a speculative check to see | 38 | * Write owner or one of the read owners. Can be used as a |
| 40 | * if the owner is running on the cpu. | 39 | * speculative check to see if the owner is running on the cpu. |
| 41 | */ | 40 | */ |
| 42 | struct task_struct *owner; | 41 | struct task_struct *owner; |
| 42 | #ifdef CONFIG_RWSEM_SPIN_ON_OWNER | ||
| 43 | struct optimistic_spin_queue osq; /* spinner MCS lock */ | 43 | struct optimistic_spin_queue osq; /* spinner MCS lock */ |
| 44 | #endif | 44 | #endif |
| 45 | raw_spinlock_t wait_lock; | 45 | raw_spinlock_t wait_lock; |
| @@ -73,13 +73,14 @@ static inline int rwsem_is_locked(struct rw_semaphore *sem) | |||
| 73 | #endif | 73 | #endif |
| 74 | 74 | ||
| 75 | #ifdef CONFIG_RWSEM_SPIN_ON_OWNER | 75 | #ifdef CONFIG_RWSEM_SPIN_ON_OWNER |
| 76 | #define __RWSEM_OPT_INIT(lockname) , .osq = OSQ_LOCK_UNLOCKED, .owner = NULL | 76 | #define __RWSEM_OPT_INIT(lockname) , .osq = OSQ_LOCK_UNLOCKED |
| 77 | #else | 77 | #else |
| 78 | #define __RWSEM_OPT_INIT(lockname) | 78 | #define __RWSEM_OPT_INIT(lockname) |
| 79 | #endif | 79 | #endif |
| 80 | 80 | ||
| 81 | #define __RWSEM_INITIALIZER(name) \ | 81 | #define __RWSEM_INITIALIZER(name) \ |
| 82 | { __RWSEM_INIT_COUNT(name), \ | 82 | { __RWSEM_INIT_COUNT(name), \ |
| 83 | .owner = NULL, \ | ||
| 83 | .wait_list = LIST_HEAD_INIT((name).wait_list), \ | 84 | .wait_list = LIST_HEAD_INIT((name).wait_list), \ |
| 84 | .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock) \ | 85 | .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock) \ |
| 85 | __RWSEM_OPT_INIT(name) \ | 86 | __RWSEM_OPT_INIT(name) \ |
