From: AMEET M. PARANJAPE <aparanja@redhat.com> Date: Thu, 16 Apr 2009 15:18:59 -0400 Subject: [net] eHEA: mutex_unlock missing in eHEA error path Message-id: 20090416191632.4337.2788.sendpatchset@squad5-lp1.lab.bos.redhat.com O-Subject: [PATCH RHEL5.4 BZ482796] eHEA: mutex_unlock missing in eHEA error path Bugzilla: 482796 RH-Acked-by: Andy Gospodarek <gospo@redhat.com> RH-Acked-by: David Miller <davem@redhat.com> RH-Acked-by: Jiri Pirko <jpirko@redhat.com> RH-Acked-by: David Howells <dhowells@redhat.com> RHBZ#: ====== https://bugzilla.redhat.com/show_bug.cgi?id=482796 Description: =========== One mutex_unlock is missing in the error path of the eHEA function ehea_rereg_mrs. RHEL Version Found: ================ RHEL 5.3 kABI Status: ============ No symbols were harmed. Brew: ===== Built on all platforms. http://brewweb.devel.redhat.com/brew/taskinfo?taskID=1762317 Upstream Status: ================ A fix by Julia Lawall for this problem has been posted on the mailing list. http://lkml.org/lkml/2008/7/21/50 This is a backport patch for RHEL5.4. Test Status: ============ This driver with the patch has executed the following tests succesfully: - ipv4: ping, flood ping, broadcast ping - ipv6: ping, flood ping, TCP traffic - flood ping with big pakets - ftp tests with large files using 4 connections with TSO on/off - ftp long run using 4 connections with TSO on/off - netpipe - netperf - netperf via IPv6 - netperf using LRO - netperf/udp - vlan ping - multicast basic - dlpar memory add - dlpar port add / remove =============================================================== Ameet Paranjape 978-392-3903 ext 23903 IBM on-site partner Proposed Patch: =============== diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index ed5eb78..bb6f832 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -2957,9 +2957,9 @@ static void ehea_rereg_mrs(void *data) } } } - mutex_unlock(&dlpar_mem_lock); - ehea_info("re-initializing driver complete"); + ehea_info("re-initializing driver complete"); out: + mutex_unlock(&dlpar_mem_lock); return; }