rpms/kernel/F-9 linux-2.6-wireless-pending-too.patch, 1.5, 1.6 kernel.spec, 1.627, 1.628

John W. Linville (linville) fedora-extras-commits at redhat.com
Fri Apr 25 03:18:39 UTC 2008


Author: linville

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

Modified Files:
	kernel.spec 
Added Files:
	linux-2.6-wireless-pending-too.patch 
Log Message:
wireless fixes from 2008-04-23

linux-2.6-wireless-pending-too.patch:

Index: linux-2.6-wireless-pending-too.patch
===================================================================
RCS file: linux-2.6-wireless-pending-too.patch
diff -N linux-2.6-wireless-pending-too.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6-wireless-pending-too.patch	25 Apr 2008 03:17:56 -0000	1.6
@@ -0,0 +1,484 @@
+commit 099714934d80100624829f1e2961b9dccaef3280
+Author: Roland Dreier <rdreier at cisco.com>
+Date:   Wed Apr 23 16:22:13 2008 -0700
+
+    iwlwifi: Don't unlock priv->mutex if it isn't locked
+    
+    Commit b716bb91 ("iwlwifi: Cancel scanning upon association") moved the
+    test of priv->vif in iwl{3945,4964}_mac_config_interface() outside of
+    where priv->mutex is held, but still tries to do mutex_unlock() on
+    return.  This is clearly wrong and triggers a nasty lockdep warning when
+    this codepath is triggered.  Fix this by removing the mutex_unlock().
+    
+    Signed-off-by: Roland Dreier <rolandd at cisco.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4d381ffb02701c3fc976091473aead7c03523133
+Author: Roel Kluin <12o3l at tiscali.nl>
+Date:   Wed Apr 23 22:10:29 2008 +0200
+
+    wireless: rndis_wlan: modparam_workaround_interval is never below 0.
+    
+    priv->param_workaround_interval is unsigned, modparam_workaround_interval not.
+    the former is never < 0.
+    
+    Signed-off-by: Roel Kluin <12o3l at tiscali.nl>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8ba82e969f71d088f718f93d64985d5fcdd9c171
+Author: Roel Kluin <12o3l at tiscali.nl>
+Date:   Wed Apr 23 21:56:49 2008 +0200
+
+    prism54: prism54_get_encode() test below 0 on unsigned index
+    
+    previously in this function:
+    
+    u32 index = (dwrq->flags & IW_ENCODE_INDEX) - 1;
+    
+    index is unsigned, so if -1, the original test (below) didn't work.
+    
+    Signed-off-by: Roel Kluin <12o3l at tiscali.nl>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d619ee08490ca78c9571dca133cd0d0527a60839
+Author: Luis Carlos Cobo <luisca at cozybit.com>
+Date:   Wed Apr 23 12:34:59 2008 -0700
+
+    mac80211: update mesh EID values
+    
+    This patch updates mesh EID values, some of which where conflicting with
+    already-approved 11h EIDs (pointed out by Tomas Winkler). I wanted to use the
+    values suggested in the last available 802.11 draft (2.0) but it assigns 50 to
+    MESH_CONFIG, the same value than EXT_SUPP_RATES. Using the values proposed in
+    the draft incremented by one.
+    
+    Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0da926f05748d273e7b2b673b0de21629ae9acdd
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
+Date:   Wed Apr 23 13:45:12 2008 +0300
+
+    mac80211: fix use before check of Qdisc length
+    
+    This patch fixes use of Qdisc length in requeue function, before we checked
+    the reference is valid. (Adrian Bunk's catch)
+    
+    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Signed-off-by: Adrian Bunk <bunk at kernel.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 13d8fd2d15fdd492078bedb9fde87c901a4e4df0
+Author: Adrian Bunk <bunk at kernel.org>
+Date:   Wed Apr 23 12:51:28 2008 +0300
+
+    net/mac80211/rx.c: fix off-by-one
+    
+    This patch fixes an off-by-one in net/mac80211/rx.c introduced by
+    commit 8318d78a44d49ac1edf2bdec7299de3617c4232e
+    (cfg80211 API for channels/bitrates, mac80211 and driver conversion)
+    and spotted by the Coverity checker.
+    
+    Signed-off-by: Adrian Bunk <bunk at kernel.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1ebebea8e844d01c80b93b8ee4d696ee7c0cbc27
+Author: Pavel Emelyanov <xemul at openvz.org>
+Date:   Wed Apr 23 11:47:15 2008 +0400
+
+    mac80211: Fix race between ieee80211_rx_bss_put and lookup routines.
+    
+    The put routine first decrements the users counter and then
+    (if it is zero) locks the sta_bss_lock and removes one from
+    the list and the hash.
+    
+    Thus, any of ieee80211_sta_config_auth, ieee80211_rx_bss_get
+    or ieee80211_rx_mesh_bss_get can race with it by finding a
+    bss that is about to get kfree-ed.
+    
+    Using atomic_dec_and_lock in ieee80211_rx_bss_put takes care
+    of this race.
+    
+    Signed-off-by: Pavel Emelyanov <xemul at openvz.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4503183aa32e6886400d82282292934fa64a81b0
+Author: Larry Finger <Larry.Finger at lwfinger.net>
+Date:   Sat Apr 19 17:52:12 2008 +0200
+
+    ssb: Fix all-ones boardflags
+    
+    In the SSB SPROM a field set to all ones means the value
+    is not defined in the SPROM.
+    In case of the boardflags, we need to set them to zero
+    to avoid confusing drivers. Drivers will only check the
+    flags by ANDing.
+    
+    Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
+    Signed-off-by: Gabor Stefanik <netrolller.3d at gmail.com>
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9fc38458355525f801cd2ab403ac89850489a05e
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sat Apr 19 16:53:00 2008 +0200
+
+    b43: Add more btcoexist workarounds
+    
+    This adds more workarounds for devices with broken BT bits.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a259d6a45b915e00e8c6085e35fea7b61e3008a8
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Fri Apr 18 21:06:37 2008 +0200
+
+    b43: Fix HostFlags data types
+    
+    The HostFlags are a bitmask of 48bit. So we must use an u64 datatype
+    to hold all bits.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1855ba7812dbd294fcfc083dc7d3b14d3b1f38db
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Fri Apr 18 20:51:41 2008 +0200
+
+    b43: Workaround invalid bluetooth settings
+    
+    This adds a workaround for invalid bluetooth SPROM settings
+    on ASUS PCI cards.
+    This will stop the microcode from poking with the BT GPIO line.
+    This fixes data transmission on this device, as the BT GPIO line
+    is used for something TX related on this device
+    (probably the power amplifier or the radio).
+    This also adds a modparam knob to help debugging this in the future,
+    as more devices with this bug may show up.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0f48d7e1cf2341148dcafc19a098ca22e184bee9
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Apr 17 19:36:28 2008 +0200
+
+    mac80211: MAINTAINERS update
+    
+    This updates the mac80211 maintainers entry to
+     1) remove Jiri
+     2) put me first
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Cc: Michael Wu <flamingice at sourmilk.net>
+    Cc: Jiri Benc <jbenc at suse.cz>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a46f025d053e47b9ce602f53f6d30e94d304a51c
+Author: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+Date:   Wed Apr 16 14:02:04 2008 -0700
+
+    mac80211: Fix n-band association problem
+    
+    There are two structures named wmm_info and wmm_param, they are used while
+    parsing the beacon frame. (Check the function ieee802_11_parse_elems).
+    Certain APs like D-link does not set the fifth bit in WMM IE.
+    While sending the association request to n-only ap it checks for wmm_ie.
+    If it is set then only ieee80211_ht_cap is sent during association request.
+    So n-only association fails.
+    And this patch fixes this problem by copying the wmm_info to wmm_ie,
+    which enables the "wmm" flag in iee80211_send_assoc.
+    
+    Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+    Acked-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+diff -up linux-2.6.25.noarch/include/linux/ieee80211.h.orig linux-2.6.25.noarch/include/linux/ieee80211.h
+--- linux-2.6.25.noarch/include/linux/ieee80211.h.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/include/linux/ieee80211.h	2008-04-24 17:23:32.000000000 -0400
+@@ -465,13 +465,19 @@ enum ieee80211_eid {
+ 	WLAN_EID_TS_DELAY = 43,
+ 	WLAN_EID_TCLAS_PROCESSING = 44,
+ 	WLAN_EID_QOS_CAPA = 46,
+-	/* 802.11s */
+-	WLAN_EID_MESH_CONFIG = 36,      /* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_MESH_ID = 37,          /* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PEER_LINK = 40,	/* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PREQ = 53,		/* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PREP = 54,		/* Pending IEEE 802.11 ANA approval */
+-	WLAN_EID_PERR = 55,		/* Pending IEEE 802.11 ANA approval */
++	/* 802.11s
++	 *
++	 * All mesh EID numbers are pending IEEE 802.11 ANA approval.
++	 * The numbers have been incremented from those suggested in
++	 * 802.11s/D2.0 so that MESH_CONFIG does not conflict with
++	 * EXT_SUPP_RATES.
++	 */
++	WLAN_EID_MESH_CONFIG = 51,
++	WLAN_EID_MESH_ID = 52,
++	WLAN_EID_PEER_LINK = 55,
++	WLAN_EID_PREQ = 68,
++	WLAN_EID_PREP = 69,
++	WLAN_EID_PERR = 70,
+ 	/* 802.11h */
+ 	WLAN_EID_PWR_CONSTRAINT = 32,
+ 	WLAN_EID_PWR_CAPABILITY = 33,
+diff -up linux-2.6.25.noarch/MAINTAINERS.orig linux-2.6.25.noarch/MAINTAINERS
+--- linux-2.6.25.noarch/MAINTAINERS.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/MAINTAINERS	2008-04-24 17:23:32.000000000 -0400
+@@ -2550,12 +2550,10 @@ W:	http://www.tazenda.demon.co.uk/phil/l
+ S:	Maintained
+ 
+ MAC80211
+-P:	Michael Wu
+-M:	flamingice at sourmilk.net
+ P:	Johannes Berg
+ M:	johannes at sipsolutions.net
+-P:	Jiri Benc
+-M:	jbenc at suse.cz
++P:	Michael Wu
++M:	flamingice at sourmilk.net
+ L:	linux-wireless at vger.kernel.org
+ W:	http://linuxwireless.org/
+ T:	git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git
+diff -up linux-2.6.25.noarch/net/mac80211/rx.c.orig linux-2.6.25.noarch/net/mac80211/rx.c
+--- linux-2.6.25.noarch/net/mac80211/rx.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/rx.c	2008-04-24 17:23:32.000000000 -0400
+@@ -2170,7 +2170,7 @@ void __ieee80211_rx(struct ieee80211_hw 
+ 	struct ieee80211_supported_band *sband;
+ 
+ 	if (status->band < 0 ||
+-	    status->band > IEEE80211_NUM_BANDS) {
++	    status->band >= IEEE80211_NUM_BANDS) {
+ 		WARN_ON(1);
+ 		return;
+ 	}
+diff -up linux-2.6.25.noarch/net/mac80211/wme.c.orig linux-2.6.25.noarch/net/mac80211/wme.c
+--- linux-2.6.25.noarch/net/mac80211/wme.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wme.c	2008-04-24 17:23:32.000000000 -0400
+@@ -709,7 +709,7 @@ void ieee80211_requeue(struct ieee80211_
+ 	struct ieee80211_sched_data *q = qdisc_priv(root_qd);
+ 	struct Qdisc *qdisc = q->queues[queue];
+ 	struct sk_buff *skb = NULL;
+-	u32 len = qdisc->q.qlen;
++	u32 len;
+ 
+ 	if (!qdisc || !qdisc->dequeue)
+ 		return;
+diff -up linux-2.6.25.noarch/net/mac80211/ieee80211_sta.c.orig linux-2.6.25.noarch/net/mac80211/ieee80211_sta.c
+--- linux-2.6.25.noarch/net/mac80211/ieee80211_sta.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/ieee80211_sta.c	2008-04-24 17:23:32.000000000 -0400
+@@ -2240,10 +2240,13 @@ static void ieee80211_rx_bss_put(struct 
+ 				 struct ieee80211_sta_bss *bss)
+ {
+ 	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
+-	if (!atomic_dec_and_test(&bss->users))
++
++	local_bh_disable();
++	if (!atomic_dec_and_lock(&bss->users, &local->sta_bss_lock)) {
++		local_bh_enable();
+ 		return;
++	}
+ 
+-	spin_lock_bh(&local->sta_bss_lock);
+ 	__ieee80211_rx_bss_hash_del(dev, bss);
+ 	list_del(&bss->list);
+ 	spin_unlock_bh(&local->sta_bss_lock);
+@@ -2660,7 +2663,26 @@ static void ieee80211_rx_bss_info(struct
+ 			bss->wmm_ie_len = elems.wmm_param_len + 2;
+ 		} else
+ 			bss->wmm_ie_len = 0;
+-	} else if (!elems.wmm_param && bss->wmm_ie) {
++	} else if (elems.wmm_info &&
++		    (!bss->wmm_ie || bss->wmm_ie_len != elems.wmm_info_len ||
++		     memcmp(bss->wmm_ie, elems.wmm_info, elems.wmm_info_len))) {
++		 /* As for certain AP's Fifth bit is not set in WMM IE in
++		  * beacon frames.So while parsing the beacon frame the
++		  * wmm_info structure is used instead of wmm_param.
++		  * wmm_info structure was never used to set bss->wmm_ie.
++		  * This code fixes this problem by copying the WME
++		  * information from wmm_info to bss->wmm_ie and enabling
++		  * n-band association.
++		  */
++		kfree(bss->wmm_ie);
++		bss->wmm_ie = kmalloc(elems.wmm_info_len + 2, GFP_ATOMIC);
++		if (bss->wmm_ie) {
++			memcpy(bss->wmm_ie, elems.wmm_info - 2,
++			       elems.wmm_info_len + 2);
++			bss->wmm_ie_len = elems.wmm_info_len + 2;
++		} else
++			bss->wmm_ie_len = 0;
++	} else if (!elems.wmm_param && !elems.wmm_info && bss->wmm_ie) {
+ 		kfree(bss->wmm_ie);
+ 		bss->wmm_ie = NULL;
+ 		bss->wmm_ie_len = 0;
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c.orig	2008-04-16 22:49:44.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c	2008-04-24 17:23:32.000000000 -0400
+@@ -2043,7 +2043,7 @@ int b43_phy_init(struct b43_wldev *dev)
+ void b43_set_rx_antenna(struct b43_wldev *dev, int antenna)
+ {
+ 	struct b43_phy *phy = &dev->phy;
+-	u32 hf;
++	u64 hf;
+ 	u16 tmp;
+ 	int autodiv = 0;
+ 
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/main.c
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-04-24 17:23:32.000000000 -0400
+@@ -82,6 +82,10 @@ int b43_modparam_qos = 1;
+ module_param_named(qos, b43_modparam_qos, int, 0444);
+ MODULE_PARM_DESC(qos, "Enable QOS support (default on)");
+ 
++static int modparam_btcoex = 1;
++module_param_named(btcoex, modparam_btcoex, int, 0444);
++MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistance (default on)");
++
+ 
+ static const struct ssb_device_id b43_ssb_tbl[] = {
+ 	SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5),
+@@ -3597,8 +3601,10 @@ static void setup_struct_wldev_for_init(
+ static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
+ {
+ 	struct ssb_sprom *sprom = &dev->dev->bus->sprom;
+-	u32 hf;
++	u64 hf;
+ 
++	if (!modparam_btcoex)
++		return;
+ 	if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST))
+ 		return;
+ 	if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode)
+@@ -3610,11 +3616,13 @@ static void b43_bluetooth_coext_enable(s
+ 	else
+ 		hf |= B43_HF_BTCOEX;
+ 	b43_hf_write(dev, hf);
+-	//TODO
+ }
+ 
+ static void b43_bluetooth_coext_disable(struct b43_wldev *dev)
+-{				//TODO
++{
++	if (!modparam_btcoex)
++		return;
++	//TODO
+ }
+ 
+ static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev)
+@@ -3707,7 +3715,8 @@ static int b43_wireless_core_init(struct
+ 	struct ssb_sprom *sprom = &bus->sprom;
+ 	struct b43_phy *phy = &dev->phy;
+ 	int err;
+-	u32 hf, tmp;
++	u64 hf;
++	u32 tmp;
+ 
+ 	B43_WARN_ON(b43_status(dev) != B43_STAT_UNINIT);
+ 
+@@ -4265,8 +4274,16 @@ static int b43_one_core_attach(struct ss
+ 	return err;
+ }
+ 
++#define IS_PDEV(pdev, _vendor, _device, _subvendor, _subdevice)		( \
++	(pdev->vendor == PCI_VENDOR_ID_##_vendor) &&			\
++	(pdev->device == _device) &&					\
++	(pdev->subsystem_vendor == PCI_VENDOR_ID_##_subvendor) &&	\
++	(pdev->subsystem_device == _subdevice)				)
++
+ static void b43_sprom_fixup(struct ssb_bus *bus)
+ {
++	struct pci_dev *pdev;
++
+ 	/* boardflags workarounds */
+ 	if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
+ 	    bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
+@@ -4274,6 +4291,13 @@ static void b43_sprom_fixup(struct ssb_b
+ 	if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
+ 	    bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
+ 		bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
++	if (bus->bustype == SSB_BUSTYPE_PCI) {
++		pdev = bus->host_pci;
++		if (IS_PDEV(pdev, BROADCOM, 0x4318, ASUSTEK, 0x100F) ||
++		    IS_PDEV(pdev, BROADCOM, 0x4320, LINKSYS, 0x0015) ||
++		    IS_PDEV(pdev, BROADCOM, 0x4320, LINKSYS, 0x0013))
++			bus->sprom.boardflags_lo &= ~B43_BFL_BTCOEXIST;
++	}
+ }
+ 
+ static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl)
+diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/dma.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/dma.c
+diff -up linux-2.6.25.noarch/drivers/net/wireless/rndis_wlan.c.orig linux-2.6.25.noarch/drivers/net/wireless/rndis_wlan.c
+--- linux-2.6.25.noarch/drivers/net/wireless/rndis_wlan.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/rndis_wlan.c	2008-04-24 17:23:32.000000000 -0400
+@@ -2402,7 +2402,6 @@ static int bcm4320_early_init(struct usb
+ 	priv->param_power_output = modparam_power_output;
+ 	priv->param_roamtrigger  = modparam_roamtrigger;
+ 	priv->param_roamdelta    = modparam_roamdelta;
+-	priv->param_workaround_interval = modparam_workaround_interval;
+ 
+ 	priv->param_country[0] = toupper(priv->param_country[0]);
+ 	priv->param_country[1] = toupper(priv->param_country[1]);
+@@ -2425,8 +2424,10 @@ static int bcm4320_early_init(struct usb
+ 	else if (priv->param_roamdelta > 2)
+ 		priv->param_roamdelta = 2;
+ 
+-	if (priv->param_workaround_interval < 0)
++	if (modparam_workaround_interval < 0)
+ 		priv->param_workaround_interval = 500;
++	else
++		priv->param_workaround_interval = modparam_workaround_interval;
+ 
+ 	rndis_set_config_parameter_str(dev, "Country", priv->param_country);
+ 	rndis_set_config_parameter_str(dev, "FrameBursting",
+diff -up linux-2.6.25.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig linux-2.6.25.noarch/drivers/net/wireless/prism54/isl_ioctl.c
+--- linux-2.6.25.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2008-04-24 17:23:32.000000000 -0400
+@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *nd
+ 	rvalue |= mgt_get_request(priv, DOT11_OID_DEFKEYID, 0, NULL, &r);
+ 	devindex = r.u;
+ 	/* Now get the key, return it */
+-	if ((index < 0) || (index > 3))
++	if (index == -1 || index > 3)
+ 		/* no index provided, use the current one */
+ 		index = devindex;
+ 	rvalue |= mgt_get_request(priv, DOT11_OID_DEFKEYX, index, NULL, &r);
+diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-04-24 17:23:32.000000000 -0400
+@@ -6809,7 +6809,6 @@ static int iwl4965_mac_config_interface(
+ 
+ 	if (priv->vif != vif) {
+ 		IWL_DEBUG_MAC80211("leave - priv->vif != vif\n");
+-		mutex_unlock(&priv->mutex);
+ 		return 0;
+ 	}
+ 
+diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-04-24 17:23:32.000000000 -0400
+@@ -6903,7 +6903,6 @@ static int iwl3945_mac_config_interface(
+ 
+ 	if (priv->vif != vif) {
+ 		IWL_DEBUG_MAC80211("leave - priv->vif != vif\n");
+-		mutex_unlock(&priv->mutex);
+ 		return 0;
+ 	}
+ 
+diff -up linux-2.6.25.noarch/drivers/net/wireless/ath5k/hw.c.orig linux-2.6.25.noarch/drivers/net/wireless/ath5k/hw.c
+diff -up linux-2.6.25.noarch/drivers/ssb/pci.c.orig linux-2.6.25.noarch/drivers/ssb/pci.c
+--- linux-2.6.25.noarch/drivers/ssb/pci.c.orig	2008-04-24 16:58:21.000000000 -0400
++++ linux-2.6.25.noarch/drivers/ssb/pci.c	2008-04-24 17:23:32.000000000 -0400
+@@ -484,6 +484,11 @@ static int sprom_extract(struct ssb_bus 
+ 			goto unsupported;
+ 	}
+ 
++	if (out->boardflags_lo == 0xFFFF)
++		out->boardflags_lo = 0;  /* per specs */
++	if (out->boardflags_hi == 0xFFFF)
++		out->boardflags_hi = 0;  /* per specs */
++
+ 	return 0;
+ unsupported:
+ 	ssb_printk(KERN_WARNING PFX "Unsupported SPROM revision %d "


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.627
retrieving revision 1.628
diff -u -r1.627 -r1.628
--- kernel.spec	23 Apr 2008 06:48:40 -0000	1.627
+++ kernel.spec	25 Apr 2008 03:17:56 -0000	1.628
@@ -612,7 +612,8 @@
 
 Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
-Patch682: linux-2.6-rt2x00-configure_filter.patch
+Patch682: linux-2.6-wireless-pending-too.patch
+Patch683: linux-2.6-rt2x00-configure_filter.patch
 Patch690: linux-2.6-at76.patch
 
 Patch700: linux-2.6-nfs-client-mounts-hang.patch
@@ -1136,6 +1137,7 @@
 #ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
+ApplyPatch linux-2.6-wireless-pending-too.patch
 # rt2x00 configure_filter fix to avoid endless loop on insert for USB devices
 ApplyPatch linux-2.6-rt2x00-configure_filter.patch
 
@@ -1783,6 +1785,21 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
 
 %changelog
+* Thu Apr 24 2008 John W. Linville <linville at redhat.com>
+- mac80211: Fix n-band association problem
+- net/mac80211/rx.c: fix off-by-one
+- mac80211: MAINTAINERS update
+- ssb: Fix all-ones boardflags
+- mac80211: update mesh EID values
+- b43: Workaround invalid bluetooth settings
+- b43: Fix HostFlags data types
+- b43: Add more btcoexist workarounds
+- mac80211: Fix race between ieee80211_rx_bss_put and lookup routines.
+- prism54: prism54_get_encode() test below 0 on unsigned index
+- wireless: rndis_wlan: modparam_workaround_interval is never below 0.
+- iwlwifi: Don't unlock priv->mutex if it isn't locked
+- mac80211: fix use before check of Qdisc length
+
 * Wed Apr 23 2008 Dave Airlie <airlied at redhat.com>
 - drm fixup oops in modesetting code and stable fixes for i915 code from upstream
 




More information about the fedora-extras-commits mailing list