rpms/kernel/F-7 linux-2.6-softmac-deadlock.patch, NONE, 1.1 kernel-2.6.spec, 1.3301, 1.3302

David Woodhouse (dwmw2) fedora-extras-commits at redhat.com
Tue Jul 31 13:23:01 UTC 2007


Author: dwmw2

Update of /cvs/pkgs/rpms/kernel/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6443

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-softmac-deadlock.patch 
Log Message:
fix softmac deadlock

linux-2.6-softmac-deadlock.patch:

--- NEW FILE linux-2.6-softmac-deadlock.patch ---
>From mb at bu3sch.de Tue Jul 31 13:58:04 2007
Return-path: <mb at bu3sch.de>
Envelope-to: dwmw2 at baythorne.infradead.org
Delivery-date: Tue, 31 Jul 2007 13:58:04 +0100
Received: from [2001:4bd0:203e::1] (helo=pentafluge.infradead.org) by
	baythorne.infradead.org with esmtps (Exim 4.63 #1 (Red Hat Linux)) id
	1IFrIa-0004Cs-DX for dwmw2 at baythorne.infradead.org; Tue, 31 Jul 2007
	13:58:04 +0100
Received: from static-ip-62-75-166-246.inaddr.intergenia.de
	([62.75.166.246] helo=vs166246.vserver.de) by pentafluge.infradead.org with
	esmtps (Exim 4.63 #1 (Red Hat Linux)) id 1IFrIY-0003S8-NL for
	dwmw2 at infradead.org; Tue, 31 Jul 2007 13:58:03 +0100
Received: from t1590.t.pppool.de ([89.55.21.144] helo=powermac.local) by
	vs166246.vserver.de with esmtpa (Exim 4.50) id 1IFrIU-0008UN-NY; Tue, 31
	Jul 2007 14:57:58 +0200
From: Michael Buesch <mb at bu3sch.de>
To: David Woodhouse <dwmw2 at infradead.org>
Subject: [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work
Date: Tue, 31 Jul 2007 14:57:33 +0200
User-Agent: KMail/1.9.6
Cc: linux-wireless at vger.kernel.org, John Linville <linville at tuxdriver.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
Message-Id: <200707311457.33723.mb at bu3sch.de>
X-Spam-Score: 0.0 (/)
X-Evolution-Source: imap://dwmw2@pentafluge.infradead.org/
Content-Transfer-Encoding: 8bit

The essid wireless extension does deadlock against the assoc mutex,
as we don't unlock the assoc mutex.

Signed-off-by: Michael Buesch <mb at bu3sch.de>

--

David, please test if this fixes your deadlock.

Index: bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c
===================================================================
--- bu3sch-wireless-dev.orig/net/ieee80211/softmac/ieee80211softmac_wx.c	2007-03-05 18:42:18.000000000 +0100
+++ bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c	2007-07-31 14:51:46.000000000 +0200
@@ -98,9 +98,12 @@ ieee80211softmac_wx_set_essid(struct net
 				cancel_delayed_work(&authptr->work);
 			sm->associnfo.bssvalid = 0;
 			sm->associnfo.bssfixed = 0;
-			flush_scheduled_work();
 			sm->associnfo.associating = 0;
 			sm->associnfo.associated = 0;
+			/* Unlock mutex, otherwise we deadlock with the assoc work handler. */
+			mutex_unlock(&sm->associnfo.mutex);
+			flush_scheduled_work();
+			mutex_lock(&sm->associnfo.mutex);
 		}
 	}
 

-- 
Greetings Michael.


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3301
retrieving revision 1.3302
diff -u -r1.3301 -r1.3302
--- kernel-2.6.spec	27 Jul 2007 21:05:11 -0000	1.3301
+++ kernel-2.6.spec	31 Jul 2007 13:22:28 -0000	1.3302
@@ -603,6 +603,7 @@
 Patch680: linux-2.6-rtl8187.patch
 Patch681: linux-2.6-wireless.patch
 Patch682: linux-2.6-bcm43xx-pci-neuter.patch
+Patch685: linux-2.6-softmac-deadlock.patch
 Patch690: git-wireless-dev.patch
 Patch700: linux-2.6-iwlwifi-fw-name-compat.patch
 Patch710: linux-2.6-e1000-ich9.patch
@@ -1318,6 +1319,8 @@
 ApplyPatch linux-2.6-iwlwifi-fw-name-compat.patch
 # avoid bcm3xx vs bcm43xx-mac80211 PCI ID conflicts
 ApplyPatch linux-2.6-bcm43xx-pci-neuter.patch
+# Fix deadlock in ieee80211 softmac
+ApplyPatch linux-2.6-softmac-deadlock.patch
 
 # add patch from markmc so that e1000 supports ICH9
 ApplyPatch linux-2.6-e1000-ich9.patch
@@ -2301,6 +2304,9 @@
 %endif
 
 %changelog
+* Tue Jul 31 2007 David Woodhouse <dwmw2 at infradead.org>
+- fix softmac deadlock.
+
 * Fri Jul 27 2007 John W. Linville <linville at redhat.com>
 - Update git-wireless-dev.patch (iwlwifi & bcm43xx updates)
 - Remove hunk of linux-2.6-wireless that was reverted upstream




More information about the fedora-extras-commits mailing list