|
@@ -26,7 +26,7 @@ int rwsem_is_locked(struct rw_semaphore *sem)
|
|
|
unsigned long flags;
|
|
|
|
|
|
if (raw_spin_trylock_irqsave(&sem->wait_lock, flags)) {
|
|
|
- ret = (sem->activity != 0);
|
|
|
+ ret = (sem->count != 0);
|
|
|
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
|
|
|
}
|
|
|
return ret;
|
|
@@ -46,7 +46,7 @@ void __init_rwsem(struct rw_semaphore *sem, const char *name,
|
|
|
debug_check_no_locks_freed((void *)sem, sizeof(*sem));
|
|
|
lockdep_init_map(&sem->dep_map, name, key, 0);
|
|
|
#endif
|
|
|
- sem->activity = 0;
|
|
|
+ sem->count = 0;
|
|
|
raw_spin_lock_init(&sem->wait_lock);
|
|
|
INIT_LIST_HEAD(&sem->wait_list);
|
|
|
}
|
|
@@ -95,7 +95,7 @@ __rwsem_do_wake(struct rw_semaphore *sem, int wakewrite)
|
|
|
waiter = list_entry(next, struct rwsem_waiter, list);
|
|
|
} while (waiter->type != RWSEM_WAITING_FOR_WRITE);
|
|
|
|
|
|
- sem->activity += woken;
|
|
|
+ sem->count += woken;
|
|
|
|
|
|
out:
|
|
|
return sem;
|
|
@@ -126,9 +126,9 @@ void __sched __down_read(struct rw_semaphore *sem)
|
|
|
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
|
|
|
- if (sem->activity >= 0 && list_empty(&sem->wait_list)) {
|
|
|
+ if (sem->count >= 0 && list_empty(&sem->wait_list)) {
|
|
|
/* granted */
|
|
|
- sem->activity++;
|
|
|
+ sem->count++;
|
|
|
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
|
|
|
goto out;
|
|
|
}
|
|
@@ -170,9 +170,9 @@ int __down_read_trylock(struct rw_semaphore *sem)
|
|
|
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
|
|
|
- if (sem->activity >= 0 && list_empty(&sem->wait_list)) {
|
|
|
+ if (sem->count >= 0 && list_empty(&sem->wait_list)) {
|
|
|
/* granted */
|
|
|
- sem->activity++;
|
|
|
+ sem->count++;
|
|
|
ret = 1;
|
|
|
}
|
|
|
|
|
@@ -206,7 +206,7 @@ void __sched __down_write_nested(struct rw_semaphore *sem, int subclass)
|
|
|
* itself into sleep and waiting for system woke it or someone
|
|
|
* else in the head of the wait list up.
|
|
|
*/
|
|
|
- if (sem->activity == 0)
|
|
|
+ if (sem->count == 0)
|
|
|
break;
|
|
|
set_task_state(tsk, TASK_UNINTERRUPTIBLE);
|
|
|
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
|
|
@@ -214,7 +214,7 @@ void __sched __down_write_nested(struct rw_semaphore *sem, int subclass)
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
}
|
|
|
/* got the lock */
|
|
|
- sem->activity = -1;
|
|
|
+ sem->count = -1;
|
|
|
list_del(&waiter.list);
|
|
|
|
|
|
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
|
|
@@ -235,9 +235,9 @@ int __down_write_trylock(struct rw_semaphore *sem)
|
|
|
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
|
|
|
- if (sem->activity == 0) {
|
|
|
+ if (sem->count == 0) {
|
|
|
/* got the lock */
|
|
|
- sem->activity = -1;
|
|
|
+ sem->count = -1;
|
|
|
ret = 1;
|
|
|
}
|
|
|
|
|
@@ -255,7 +255,7 @@ void __up_read(struct rw_semaphore *sem)
|
|
|
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
|
|
|
- if (--sem->activity == 0 && !list_empty(&sem->wait_list))
|
|
|
+ if (--sem->count == 0 && !list_empty(&sem->wait_list))
|
|
|
sem = __rwsem_wake_one_writer(sem);
|
|
|
|
|
|
raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
|
|
@@ -270,7 +270,7 @@ void __up_write(struct rw_semaphore *sem)
|
|
|
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
|
|
|
- sem->activity = 0;
|
|
|
+ sem->count = 0;
|
|
|
if (!list_empty(&sem->wait_list))
|
|
|
sem = __rwsem_do_wake(sem, 1);
|
|
|
|
|
@@ -287,7 +287,7 @@ void __downgrade_write(struct rw_semaphore *sem)
|
|
|
|
|
|
raw_spin_lock_irqsave(&sem->wait_lock, flags);
|
|
|
|
|
|
- sem->activity = 1;
|
|
|
+ sem->count = 1;
|
|
|
if (!list_empty(&sem->wait_list))
|
|
|
sem = __rwsem_do_wake(sem, 0);
|
|
|
|