Commit 1a0adb98 authored by Jan Blunck's avatar Jan Blunck Committed by Thomas Gleixner

rt: Make rt_down_read_trylock() behave like down_read_trylock()

This patch removes the stupid "Read locks within the self-held write
lock succeed" behaviour. This is breaking in mm_take_all_locks() since
it is quite common to ensure that a lock is taken with
BUG_ON(down_read_trylock(&mm->mmap_sem)).
Signed-off-by: default avatarJan Blunck <jblunck@suse.de>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 2f0c8457
......@@ -380,18 +380,6 @@ int rt_down_read_trylock(struct rw_semaphore *rwsem)
unsigned long flags;
int ret;
/*
* Read locks within the self-held write lock succeed.
*/
spin_lock_irqsave(&rwsem->lock.wait_lock, flags);
if (rt_mutex_real_owner(&rwsem->lock) == current) {
spin_unlock_irqrestore(&rwsem->lock.wait_lock, flags);
rwsem_acquire_read(&rwsem->dep_map, 0, 1, _RET_IP_);
rwsem->read_depth++;
return 1;
}
spin_unlock_irqrestore(&rwsem->lock.wait_lock, flags);
ret = rt_mutex_trylock(&rwsem->lock);
if (ret)
rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment