atom feed2 messages in org.kernel.vger.kernel-janitors[PATCH 2/12] arch/s390/kernel: Add mi...
FromSent OnAttachments
Julia LawallMar 29, 2010 8:33 am 
Heiko CarstensMar 29, 2010 8:56 am 
Subject:[PATCH 2/12] arch/s390/kernel: Add missing unlock
From:Julia Lawall (jul@diku.dk)
Date:Mar 29, 2010 8:33:52 am
List:org.kernel.vger.kernel-janitors

From: Julia Lawall <jul@diku.dk>

In the default case the lock is not unlocked. The return is converted to a goto, to share the unlock at the end of the function.

A simplified version of the semantic patch that finds this problem is as follows: (http://coccinelle.lip6.fr/)

// <smpl> @r exists@ expression E1; identifier f; @@

f (...) { <+... * spin_lock_irq (E1,...); ... when != E1 * return ...; ...+> } // </smpl>

diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 14ef6f0..247b4c2 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c @@ -165,10 +165,11 @@ static void tl_to_cores(struct tl_info *info) default: clear_cores(); machine_has_topology = 0; - return; + goto out; } tle = next_tle(tle); } +out: spin_unlock_irq(&topology_lock); }