mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 09:34:12 +08:00
CRIS: assignment/is equal confusion
Somehow, the assignments of rw->lock got written as comparisons. The effect probably was that the read-write spinlocks never locked. However, since the locks are only used in CONFIG_SMP and SMP CRIS is experimental, it has never been identified as a problem. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Acked-by: Jesper Nilsson <jesper.nilsson@axis.com>
This commit is contained in:
parent
ccc0d38ec1
commit
b0903ee8e4
@ -78,7 +78,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
|
||||
{
|
||||
__raw_spin_lock(&rw->slock);
|
||||
while (rw->lock != RW_LOCK_BIAS);
|
||||
rw->lock == 0;
|
||||
rw->lock = 0;
|
||||
__raw_spin_unlock(&rw->slock);
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
|
||||
{
|
||||
__raw_spin_lock(&rw->slock);
|
||||
while (rw->lock != RW_LOCK_BIAS);
|
||||
rw->lock == RW_LOCK_BIAS;
|
||||
rw->lock = RW_LOCK_BIAS;
|
||||
__raw_spin_unlock(&rw->slock);
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw)
|
||||
int ret = 0;
|
||||
__raw_spin_lock(&rw->slock);
|
||||
if (rw->lock == RW_LOCK_BIAS) {
|
||||
rw->lock == 0;
|
||||
rw->lock = 0;
|
||||
ret = 1;
|
||||
}
|
||||
__raw_spin_unlock(&rw->slock);
|
||||
|
Loading…
Reference in New Issue
Block a user