summaryrefslogtreecommitdiffstats
path: root/kernel/locking
diff options
context:
space:
mode:
authorAlexey Kodanev <alexey.kodanev@oracle.com>2015-03-07 01:06:53 +0100
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-05-27 21:59:56 +0200
commitf548d99ef4f5ec8f7080e88ad07c44d16d058ddc (patch)
treebe050b69831204402b11f6ee79173461ece46017 /kernel/locking
parentrcu: Convert ACCESS_ONCE() to READ_ONCE() and WRITE_ONCE() (diff)
downloadlinux-f548d99ef4f5ec8f7080e88ad07c44d16d058ddc.tar.xz
linux-f548d99ef4f5ec8f7080e88ad07c44d16d058ddc.zip
locktorture: fix deadlock in 'rw_lock_irq' type
torture_rwlock_read_unlock_irq() must use read_unlock_irqrestore() instead of write_unlock_irqrestore(). Use read_unlock_irqrestore() instead of write_unlock_irqrestore(). Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/locking')
-rw-r--r--kernel/locking/locktorture.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index ec8cce259779..6a2723c88c33 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -309,7 +309,7 @@ static int torture_rwlock_read_lock_irq(void) __acquires(torture_rwlock)
static void torture_rwlock_read_unlock_irq(void)
__releases(torture_rwlock)
{
- write_unlock_irqrestore(&torture_rwlock, cxt.cur_ops->flags);
+ read_unlock_irqrestore(&torture_rwlock, cxt.cur_ops->flags);
}
static struct lock_torture_ops rw_lock_irq_ops = {