summaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/pmb.c
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2010-06-20 11:24:54 +0000
committerPaul Mundt <lethal@linux-sh.org>2010-06-21 13:46:53 +0900
commit0e6f989ba83e6fa64e979d3488f01670b8be7959 (patch)
tree867fd6607fb419ab3a6250c38ec7e966131c145c /arch/sh/mm/pmb.c
parent9973e38575070b70c68bad177fb5056548fea349 (diff)
downloadlinux-0e6f989ba83e6fa64e979d3488f01670b8be7959.tar.gz
linux-0e6f989ba83e6fa64e979d3488f01670b8be7959.tar.bz2
linux-0e6f989ba83e6fa64e979d3488f01670b8be7959.zip
arch/sh/mm: Eliminate a double lock
The function begins and ends with a read_lock. The latter is changed to a read_unlock. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @locked@ expression E1; position p; @@ read_lock(E1@p,...); @r exists@ expression x <= locked.E1; expression locked.E1; expression E2; identifier lock; position locked.p,p1,p2; @@ *lock@p1 (E1@p,...); ... when != E1 when != \(x = E2\|&x\) *lock@p2 (E1,...); // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Acked-by: Matt Fleming <matt@console-pimps.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/pmb.c')
-rw-r--r--arch/sh/mm/pmb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sh/mm/pmb.c b/arch/sh/mm/pmb.c
index 18623ba751b3..6379091a1647 100644
--- a/arch/sh/mm/pmb.c
+++ b/arch/sh/mm/pmb.c
@@ -770,7 +770,7 @@ static void __init pmb_resize(void)
spin_unlock_irqrestore(&pmbe->lock, flags);
}
- read_lock(&pmb_rwlock);
+ read_unlock(&pmb_rwlock);
}
#endif