rpms/kernel/devel kernel.spec, 1.365, 1.366 linux-2.6-wireless-pending-too.patch, 1.1, 1.2 linux-2.6-wireless.patch, 1.17, 1.18

John W. Linville (linville) fedora-extras-commits at redhat.com
Thu Jan 17 18:47:51 UTC 2008


Author: linville

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv22658

Modified Files:
	kernel.spec linux-2.6-wireless-pending-too.patch 
	linux-2.6-wireless.patch 
Log Message:
More wireless fixes headed for 2.6.24 ; More wireless updates headed for 2.6.25


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.365
retrieving revision 1.366
diff -u -r1.365 -r1.366
--- kernel.spec	16 Jan 2008 17:35:23 -0000	1.365
+++ kernel.spec	17 Jan 2008 18:47:15 -0000	1.366
@@ -1125,7 +1125,7 @@
 ApplyPatch linux-2.6-ata-quirk.patch
 
 # wireless patches headed for 2.6.24
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.25
 ApplyPatch linux-2.6-wireless-pending.patch
 
@@ -1757,6 +1757,10 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Thu Jan 17 2008 John W. Linville <linville at redhat.com>
+- More wireless fixes headed for 2.6.24
+- More wireless updates headed for 2.6.25
+
 * Wed Jan 16 2008 Kyle McMartin <kmcmartin at redhat.com>
 - 2.6.24-rc8
 

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

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.1 -r 1.2 linux-2.6-wireless-pending-too.patch
Index: linux-2.6-wireless-pending-too.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending-too.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-wireless-pending-too.patch	9 Jan 2008 16:58:18 -0000	1.1
+++ linux-2.6-wireless-pending-too.patch	17 Jan 2008 18:47:15 -0000	1.2
@@ -1,4 +1,489 @@
-commit 6e800de90057baf13db333925fd7f60b8ce3ce5c
+commit 8f5c75797749f2ff0292476770d1b123e940272a
+Author: Andrew Morton <akpm at linux-foundation.org>
+Date:   Wed Jan 16 02:58:24 2008 -0800
+
+    drivers/net/wireless/rt2x00/rt2x00usb.c: fix uninitialized var warning
+    
+    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9f7209dbf220cf297f7377cec4277066b06fc0be
+Author: Andrew Morton <akpm at linux-foundation.org>
+Date:   Wed Jan 16 02:56:33 2008 -0800
+
+    drivers/net/wireless/iwlwifi/iwl-3945.c: fix printk warning
+    
+    drivers/net/wireless/iwlwifi/iwl-3945.c: In function 'iwl3945_add_radiotap':
+    drivers/net/wireless/iwlwifi/iwl-3945.c:269: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
+    
+    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 61b95b94cb2874ab7ad30c0e190f12772b9eaec1
+Author: Stefano Brivio <stefano.brivio at polimi.it>
+Date:   Sun Jan 13 18:35:52 2008 +0100
+
+    b43legacy: fix use-after-free rfkill bug
+    
+    Fix rfkill code which caused a use-after-free bug. Thanks to David
+    Woodhouse for spotting this out.
+    
+    Cc: David Woodhouse <dwmw2 at infradead.org>
+    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 446ee8df9437440ea36cd5354a11c8e2e7f3ac13
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
+Date:   Sun Jan 13 18:25:43 2008 +0200
+
+    mac80211: A-MPDU Rx remove stop_rx_ba_session warning print
+    
+    This patch removes a warning print from ieee80211_sta_stop_rx_ba_session
+    in case the tid is inactive when interface goes down.
+    
+    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d25784e1c4194b34148b4fd00e177d07012035d6
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
+Date:   Sun Jan 13 18:21:58 2008 +0200
+
+    mac80211: A-MPDU Rx stop aggregation on proper dev
+    
+    This patch adds a check to insure that Rx A-MPDU will be stopped only
+    for the proper device.
+    
+    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 576d6841734351bb36d85ae7d01b68197d7cd50d
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Jan 13 14:16:47 2008 +0100
+
+    mac80211: Initialize vif pointer
+    
+    Before calling update_beacon() mac80211 must
+    initialize the control.vif pointer so it can
+    be used by the driver to determine which
+    interface is trying to send the beacon.
+    
+    v2: ieee80211_beacon_get() should also initialize the
+    vif pointer since it can be called by mac80211 internally
+    before calling config_interface().
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit bfde1a26d76dc003ce04a537ce201af12090ce0d
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date:   Wed Jan 16 15:59:52 2008 +0100
+
+    libertas: pepper main with debug statement
+    
+    libertas: re-pepper debug statementThe recent fluff of updates
+    didn't put proper lbs_deb_enter/leave calls into the source code.
+    Add them where appropriate.
+    
+    Also contains some whitespace changes.
+    
+    Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 11d13369ca780343f641b7ab0393c1a4c97d35db
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date:   Wed Jan 16 15:57:44 2008 +0100
+
+    libertas: don't blindly try mesh
+    
+    The CF card only has a very old firmware (5.0.16p0). This firmware doesn't
+    know anything about mesh config. However, current code blindly calls
+    mesh_config when the card is inserted. So check the firmware version before
+    issuing this command.
+    
+    Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 05ba00da58d4c3c513458ab6f1acefb418ea6d59
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date:   Wed Jan 16 15:55:22 2008 +0100
+
+    libertas: always show firmware release
+    
+    Always shows the firmware release.
+    
+    Also converts the firmware release into something that is easily comparable.
+    
+    Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 7b44caf01905d68cdae424d42efbcff3e9177859
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date:   Wed Jan 16 15:52:58 2008 +0100
+
+    libertas: move cardspecific data to driver
+    
+    boot2_version is purely USB specific, so move it to struct if_usb_card.
+    
+    Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1b03b8df499d2218d3416d2d4cdf38030e9fd494
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date:   Wed Jan 16 15:48:44 2008 +0100
+
+    libertas cs/sdio: fix 'NOHZ: local_softirq_pending 08' message
+    
+    netif_rx should be called only from interrupt context. if_cs and if_sdio receive
+    packets from other contexts, and thus should call netif_rx_ni.
+    
+    Signed-off-by: Marc Pignat <marc.pignat at hevs.ch>
+    Acked-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 40a0c491892f0186462cf9ffeebbaaa29c30ff46
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 16 02:14:23 2008 +0100
+
+    b43: Add lots of N-PHY lookup tables
+    
+    This adds lots of N-PHY related lookup tables.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6643962829da926f171ed711a0ebb98de18e8f30
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Mon Jan 14 17:46:25 2008 -0800
+
+    iwlwifi: style fixes to usage of << and >> operators
+    
+    The << and >> operators need space on each side.
+    
+    Cc: Stefano Brivio <stefano.brivio at polimi.it>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Acked-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6f8cd5ea0282bd6b66f1371d731e0cce143d94fa
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Mon Jan 14 17:46:24 2008 -0800
+
+    iwlwifi: remove reference to non-existent documentation
+    
+    The external iwlwifi driver comes with a README file that is
+    referenced by the Kconfig. This README is not present in the
+    driver included in the kernel. Remove references to this
+    documentation.
+    
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Acked-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 08a71a59a43d0502ec12bc96c7d908dec9662487
+Author: Zhu Yi <yi.zhu at intel.com>
+Date:   Mon Jan 14 17:46:23 2008 -0800
+
+    iwlwifi: Update iwlwifi version stamp to 1.2.23
+    
[...11412 lines suppressed...]
+ 	 * Set descriptor and data pointer.
+ 	 */
+-	skbdesc->desc = entry->skb->data + skbdesc->data_len;
++	skbdesc->desc = entry->skb->data + desc->size;
++	skbdesc->desc_len = entry->ring->desc_size;
+ 	skbdesc->data = entry->skb->data;
++	skbdesc->data_len = desc->size;
+ }
+ 
+ /*
+@@ -1776,7 +1773,7 @@ static const struct ieee80211_ops rt2500
  	.config_interface	= rt2x00mac_config_interface,
  	.configure_filter	= rt2500usb_configure_filter,
  	.get_stats		= rt2x00mac_get_stats,
@@ -4441,8 +14388,8 @@
  	.get_tx_stats		= rt2x00mac_get_tx_stats,
  	.beacon_update		= rt2500usb_beacon_update,
 diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c
---- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c	2008-01-17 13:36:10.000000000 -0500
 @@ -181,7 +181,7 @@ int rt2x00mac_add_interface(struct ieee8
  	    is_interface_present(intf))
  		return -ENOBUFS;
@@ -4505,8 +14452,8 @@
  int rt2x00mac_conf_tx(struct ieee80211_hw *hw, int queue,
  		      const struct ieee80211_tx_queue_params *params)
 diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c
---- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2500pci.c	2008-01-17 13:36:10.000000000 -0500
 @@ -1835,7 +1835,7 @@ static const struct ieee80211_ops rt2500
  	.configure_filter	= rt2500pci_configure_filter,
  	.get_stats		= rt2x00mac_get_stats,
@@ -4517,8 +14464,8 @@
  	.get_tx_stats		= rt2x00mac_get_tx_stats,
  	.get_tsf		= rt2500pci_get_tsf,
 diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c
---- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt61pci.c	2008-01-17 13:36:10.000000000 -0500
 @@ -2442,7 +2442,7 @@ static const struct ieee80211_ops rt61pc
  	.configure_filter	= rt61pci_configure_filter,
  	.get_stats		= rt2x00mac_get_stats,
@@ -4529,9 +14476,29 @@
  	.get_tx_stats		= rt2x00mac_get_tx_stats,
  	.get_tsf		= rt61pci_get_tsf,
 diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c
---- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-01-09 11:28:46.000000000 -0500
-@@ -2024,7 +2024,7 @@ static const struct ieee80211_ops rt73us
+--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-01-17 13:36:10.000000000 -0500
+@@ -1398,15 +1398,12 @@ static void rt73usb_fill_rxdone(struct d
+ 	desc->my_bss = !!rt2x00_get_field32(word0, RXD_W0_MY_BSS);
+ 
+ 	/*
+-	 * Pull the skb to clear the descriptor area.
+-	 */
+-	skb_pull(entry->skb, entry->ring->desc_size);
+-
+-	/*
+ 	 * Set descriptor and data pointer.
+ 	 */
+-	skbdesc->desc = entry->skb->data - skbdesc->desc_len;
+-	skbdesc->data = entry->skb->data;
++	skbdesc->desc = entry->skb->data;
++	skbdesc->desc_len = entry->ring->desc_size;
++	skbdesc->data = entry->skb->data + entry->ring->desc_size;
++	skbdesc->data_len = desc->size;
+ }
+ 
+ /*
+@@ -2024,7 +2021,7 @@ static const struct ieee80211_ops rt73us
  	.configure_filter	= rt73usb_configure_filter,
  	.get_stats		= rt2x00mac_get_stats,
  	.set_retry_limit	= rt73usb_set_retry_limit,
@@ -4541,8 +14508,8 @@
  	.get_tx_stats		= rt2x00mac_get_tx_stats,
  	.get_tsf		= rt73usb_get_tsf,
 diff -up linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c.orig linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c
---- linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/hw.c	2008-01-17 13:36:10.000000000 -0500
 @@ -533,7 +533,7 @@ static inline void ath5k_hw_write_rate_d
  		 * ieee80211_duration() for a brief description of
  		 * what rate we should choose to TX ACKs. */
@@ -4568,8 +14535,8 @@
  
  		/*
 diff -up linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c.orig linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c
---- linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.c	2008-01-17 13:36:10.000000000 -0500
 @@ -178,7 +178,8 @@ static void ath5k_remove_interface(struc
  		struct ieee80211_if_init_conf *conf);
  static int ath5k_config(struct ieee80211_hw *hw,
@@ -4580,7 +14547,7 @@
  		struct ieee80211_if_conf *conf);
  static void ath5k_configure_filter(struct ieee80211_hw *hw,
  		unsigned int changed_flags,
-@@ -2505,12 +2506,12 @@ static int ath5k_add_interface(struct ie
+@@ -2498,12 +2499,12 @@ static int ath5k_add_interface(struct ie
  	int ret;
  
  	mutex_lock(&sc->lock);
@@ -4595,7 +14562,7 @@
  
  	switch (conf->type) {
  	case IEEE80211_IF_TYPE_STA:
-@@ -2535,10 +2536,10 @@ ath5k_remove_interface(struct ieee80211_
+@@ -2528,10 +2529,10 @@ ath5k_remove_interface(struct ieee80211_
  	struct ath5k_softc *sc = hw->priv;
  
  	mutex_lock(&sc->lock);
@@ -4608,7 +14575,7 @@
  end:
  	mutex_unlock(&sc->lock);
  }
-@@ -2556,7 +2557,7 @@ ath5k_config(struct ieee80211_hw *hw,
+@@ -2549,7 +2550,7 @@ ath5k_config(struct ieee80211_hw *hw,
  }
  
  static int
@@ -4617,7 +14584,7 @@
  			struct ieee80211_if_conf *conf)
  {
  	struct ath5k_softc *sc = hw->priv;
-@@ -2567,7 +2568,7 @@ ath5k_config_interface(struct ieee80211_
+@@ -2560,7 +2561,7 @@ ath5k_config_interface(struct ieee80211_
  	 * be set to mac80211's value at ath5k_config(). */
  	sc->bintval = 1000 * 1000 / 1024;
  	mutex_lock(&sc->lock);
@@ -4627,8 +14594,8 @@
  		goto unlock;
  	}
 diff -up linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h.orig linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h
---- linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ath5k/base.h	2008-01-17 13:36:10.000000000 -0500
 @@ -123,7 +123,7 @@ struct ath5k_softc {
  	unsigned int		curmode;	/* current phy mode */
  	struct ieee80211_channel *curchan;	/* current h/w channel */
@@ -4639,8 +14606,8 @@
  	struct {
  		u8	rxflags;	/* radiotap rx flags */
 diff -up linux-2.6.23.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.23.noarch/drivers/net/wireless/adm8211.c
---- linux-2.6.23.noarch/drivers/net/wireless/adm8211.c.orig	2008-01-09 11:04:05.000000000 -0500
-+++ linux-2.6.23.noarch/drivers/net/wireless/adm8211.c	2008-01-09 11:28:46.000000000 -0500
+--- linux-2.6.23.noarch/drivers/net/wireless/adm8211.c.orig	2008-01-17 13:34:47.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/adm8211.c	2008-01-17 13:36:10.000000000 -0500
 @@ -1312,7 +1312,8 @@ static int adm8211_config(struct ieee802
  	return 0;
  }
@@ -4651,3 +14618,39 @@
  				    struct ieee80211_if_conf *conf)
  {
  	struct adm8211_priv *priv = dev->priv;
+diff -up linux-2.6.23.noarch/drivers/ssb/pci.c.orig linux-2.6.23.noarch/drivers/ssb/pci.c
+--- linux-2.6.23.noarch/drivers/ssb/pci.c.orig	2008-01-17 13:34:48.000000000 -0500
++++ linux-2.6.23.noarch/drivers/ssb/pci.c	2008-01-17 13:36:10.000000000 -0500
+@@ -377,6 +377,8 @@ static void sprom_extract_r123(struct ss
+ 	     SSB_SPROM1_ITSSI_A_SHIFT);
+ 	SPEX(itssi_bg, SSB_SPROM1_ITSSI, SSB_SPROM1_ITSSI_BG, 0);
+ 	SPEX(boardflags_lo, SSB_SPROM1_BFLLO, 0xFFFF, 0);
++	if (out->revision >= 2)
++		SPEX(boardflags_hi, SSB_SPROM2_BFLHI, 0xFFFF, 0);
+ 
+ 	/* Extract the antenna gain values. */
+ 	gain = r123_extract_antgain(out->revision, in,
+@@ -418,6 +420,7 @@ static void sprom_extract_r4(struct ssb_
+ 	     SSB_SPROM4_ETHPHY_ET1A_SHIFT);
+ 	SPEX(country_code, SSB_SPROM4_CCODE, 0xFFFF, 0);
+ 	SPEX(boardflags_lo, SSB_SPROM4_BFLLO, 0xFFFF, 0);
++	SPEX(boardflags_hi, SSB_SPROM4_BFLHI, 0xFFFF, 0);
+ 	SPEX(ant_available_a, SSB_SPROM4_ANTAVAIL, SSB_SPROM4_ANTAVAIL_A,
+ 	     SSB_SPROM4_ANTAVAIL_A_SHIFT);
+ 	SPEX(ant_available_bg, SSB_SPROM4_ANTAVAIL, SSB_SPROM4_ANTAVAIL_BG,
+diff -up linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt
+--- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-17 13:34:47.000000000 -0500
++++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-17 13:36:10.000000000 -0500
+@@ -358,3 +358,12 @@ Why:	This algorithm was provided for ref
+ 	responsiveness and performance and has some serious flaws. It has been
+ 	replaced by rc80211-pid.
+ Who:	Stefano Brivio <stefano.brivio at polimi.it>
++
++---------------------------
++
++What:	b43 support for firmware revision < 410
++When:	July 2008
++Why:	The support code for the old firmware hurts code readability/maintainability
++	and slightly hurts runtime performance. Bugfixes for the old firmware
++	are not provided by Broadcom anymore.
++Who:	Michael Buesch <mb at bu3sch.de>

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- linux-2.6-wireless.patch	10 Jan 2008 22:07:32 -0000	1.17
+++ linux-2.6-wireless.patch	17 Jan 2008 18:47:15 -0000	1.18
@@ -1,25 +1,227 @@
-commit bff0a057a309d03dee2db3e424f33e56ca395786
+commit 2518812da9315f4ebc6b11b5289e5ef205a34ced
+Author: Eric Paris <eparis at redhat.com>
+Date:   Sun Jan 13 16:20:56 2008 -0500
+
+    rfkill: call rfkill_led_trigger_unregister() on error
+    
+    Code inspection turned up that error cases in rfkill_register() do not
+    call rfkill_led_trigger_unregister() even though we have already
+    registered.
+    
+    Signed-off-by: Eric Paris <eparis at redhat.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d101f6496d51cbeb285f531dff059ce0ef28ffe3
 Author: Ivo van Doorn <ivdoorn at gmail.com>
-Date:   Wed Jan 9 19:18:25 2008 +0100
+Date:   Fri Jan 11 20:53:07 2008 +0100
+
+    rt2x00: Fix ieee80211 payload alignment
+    
+    As Johannes Berg indicated, the NET_IP_ALIGN doesn't
+    need to be used for ieee80211 frames. This means we
+    can simplify the alignment calculation to just
+    use the result of the header size modulus 4 as frame
+    alignment.
+    
+    Furthermore we shouldn't use NET_IP_ALIGN in rt2x00usb
+    because it could be 0 on some architectures and we absolutely
+    need to have 2 bytes reserved for possible aligning.
+    
+    Signed-off-by: Ivo van Doorn<IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a38db5b6219d88e2b48f07472c436b19b864f93c
+Author: Stefano Brivio <stefano.brivio at polimi.it>
+Date:   Sun Jan 13 18:30:14 2008 +0100
 
-    rt2x00: Corectly initialize rt2500usb MAC
+    b43: fix use-after-free rfkill bug
     
-    mac is a pointer, obviously we shouldn't use the address
-    of a pointer as MAC address.
+    Fix rfkill code which caused a use-after-free bug.
     
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
+    Acked-by: Michael Buesch <mb at bu3sch.de>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
-index 50775f9..18b1f91 100644
---- a/drivers/net/wireless/rt2x00/rt2500usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -257,7 +257,7 @@ static const struct rt2x00debug rt2500usb_rt2x00debug = {
- static void rt2500usb_config_mac_addr(struct rt2x00_dev *rt2x00dev,
- 				      __le32 *mac)
+commit 8ff9d21ee2ac7eceeb6ba3da52c3472dcab435e4
+Author: Stefano Brivio <stefano.brivio at polimi.it>
+Date:   Sat Jan 12 23:12:26 2008 +0100
+
+    ipw2200: fix typo in kerneldoc
+    
+    Fix a typo in kerneldoc for ipw2200.
+    
+    Signed-off-by: Stefano Brivio <stefano.brivio at polimi.it>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 436c8854a05add153a9003b3aa19e54851ed902f
+Author: Marc Pignat <marc.pignat at hevs.ch>
+Date:   Fri Jan 11 16:12:28 2008 +0100
+
+    wireless/libertas support for 88w8385 sdio older revision
+    
+    Identifiaction of another revision of 88w8385 in sdio mode.
+    
+    Signed-off-by: Marc Pignat <marc.pignat at hevs.ch>
+    Acked-by: Pierre Ossman <drzeus at drzeus.cx>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e52742deef04ed7babec0f5866c867dd15d449f0
+Author: Randy Dunlap <randy.dunlap at oracle.com>
+Date:   Thu Jan 10 14:31:30 2008 -0800
+
+    hostap: section mismatch warning
+    
+    Fix section mismatch by changing variable name to match one of the
+    whitelisted (allowable) names for pointing into init data:
+    
+    WARNING: vmlinux.o(.data+0xce618): Section mismatch: reference to .init.data:prism2_plx_id_table (between 'prism2_plx_drv_id' and 'dev_info')
+    
+    Signed-off-by: Randy Dunlap <randy.dunlap at oracle.com>
+    Acked-by: Sam Ravnborg <sam at ravnborg.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+diff -up linux-2.6.23.noarch/net/rfkill/rfkill.c.orig linux-2.6.23.noarch/net/rfkill/rfkill.c
+--- linux-2.6.23.noarch/net/rfkill/rfkill.c.orig	2008-01-17 13:12:24.000000000 -0500
++++ linux-2.6.23.noarch/net/rfkill/rfkill.c	2008-01-17 13:21:22.000000000 -0500
+@@ -392,11 +392,14 @@ int rfkill_register(struct rfkill *rfkil
+ 	rfkill_led_trigger_register(rfkill);
+ 
+ 	error = rfkill_add_switch(rfkill);
+-	if (error)
++	if (error) {
++		rfkill_led_trigger_unregister(rfkill);
+ 		return error;
++	}
+ 
+ 	error = device_add(dev);
+ 	if (error) {
++		rfkill_led_trigger_unregister(rfkill);
+ 		rfkill_remove_switch(rfkill);
+ 		return error;
+ 	}
+diff -up linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c.orig linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c
+--- linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c.orig	2008-01-17 13:12:21.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/b43/rfkill.c	2008-01-17 13:21:40.000000000 -0500
+@@ -138,8 +138,11 @@ void b43_rfkill_init(struct b43_wldev *d
+ 	rfk->rfkill->user_claim_unsupported = 1;
+ 
+ 	rfk->poll_dev = input_allocate_polled_device();
+-	if (!rfk->poll_dev)
+-		goto err_free_rfk;
++	if (!rfk->poll_dev) {
++		rfkill_free(rfk->rfkill);
++		goto err_freed_rfk;
++	}
++
+ 	rfk->poll_dev->private = dev;
+ 	rfk->poll_dev->poll = b43_rfkill_poll;
+ 	rfk->poll_dev->poll_interval = 1000; /* msecs */
+@@ -175,8 +178,7 @@ err_unreg_rfk:
+ err_free_polldev:
+ 	input_free_polled_device(rfk->poll_dev);
+ 	rfk->poll_dev = NULL;
+-err_free_rfk:
+-	rfkill_free(rfk->rfkill);
++err_freed_rfk:
+ 	rfk->rfkill = NULL;
+ out_error:
+ 	rfk->registered = 0;
+@@ -195,6 +197,5 @@ void b43_rfkill_exit(struct b43_wldev *d
+ 	rfkill_unregister(rfk->rfkill);
+ 	input_free_polled_device(rfk->poll_dev);
+ 	rfk->poll_dev = NULL;
+-	rfkill_free(rfk->rfkill);
+ 	rfk->rfkill = NULL;
+ }
+diff -up linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c.orig linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c
+--- linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c.orig	2008-01-17 13:12:21.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/libertas/if_sdio.c	2008-01-17 13:21:40.000000000 -0500
+@@ -871,6 +871,10 @@ static int if_sdio_probe(struct sdio_fun
+ 		if (sscanf(func->card->info[i],
+ 				"ID: %x", &model) == 1)
+ 			break;
++               if (!strcmp(func->card->info[i], "IBIS Wireless SDIO Card")) {
++                       model = 4;
++                       break;
++               }
+ 	}
+ 
+ 	if (i == func->card->num_info) {
+diff -up linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c.orig linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c
+--- linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c.orig	2008-01-17 13:12:21.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/ipw2200.c	2008-01-17 13:21:40.000000000 -0500
+@@ -4935,7 +4935,7 @@ static int ipw_queue_reset(struct ipw_pr
+ /**
+  * Reclaim Tx queue entries no more used by NIC.
+  *
+- * When FW adwances 'R' index, all entries between old and
++ * When FW advances 'R' index, all entries between old and
+  * new 'R' index need to be reclaimed. As result, some free space
+  * forms. If there is enough free space (> low mark), wake Tx queue.
+  *
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c
+--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c.orig	2008-01-17 13:12:21.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00usb.c	2008-01-17 13:21:40.000000000 -0500
+@@ -245,13 +245,20 @@ static void rt2x00usb_interrupt_rxdone(s
+ 	 * Allocate a new sk buffer to replace the current one.
+ 	 * If allocation fails, we should drop the current frame
+ 	 * so we can recycle the existing sk buffer for the new frame.
++	 * As alignment we use 2 and not NET_IP_ALIGN because we need
++	 * to be sure we have 2 bytes room in the head. (NET_IP_ALIGN
++	 * can be 0 on some hardware). We use these 2 bytes for frame
++	 * alignment later, we assume that the chance that
++	 * header_size % 4 == 2 is bigger then header_size % 2 == 0
++	 * and thus optimize alignment by reserving the 2 bytes in
++	 * advance.
+ 	 */
+ 	frame_size = entry->ring->data_size + entry->ring->desc_size;
+-	skb = dev_alloc_skb(frame_size + NET_IP_ALIGN);
++	skb = dev_alloc_skb(frame_size + 2);
+ 	if (!skb)
+ 		goto skip_entry;
+ 
+-	skb_reserve(skb, NET_IP_ALIGN);
++	skb_reserve(skb, 2);
+ 	skb_put(skb, frame_size);
+ 
+ 	/*
+diff -up linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c.orig linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c
+--- linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c.orig	2008-01-17 13:12:21.000000000 -0500
++++ linux-2.6.23.noarch/drivers/net/wireless/rt2x00/rt2x00pci.c	2008-01-17 13:21:40.000000000 -0500
+@@ -149,7 +149,7 @@ void rt2x00pci_rxdone(struct rt2x00_dev 
+ 		 * The data behind the ieee80211 header must be
+ 		 * aligned on a 4 byte boundary.
+ 		 */
+-		align = NET_IP_ALIGN + (2 * (header_size % 4 == 0));
++		align = header_size % 4;
+ 
+ 		/*
+ 		 * Allocate the sk_buffer, initialize it and copy
+diff -up linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c.orig linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c
+--- linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c.orig	2007-10-09 16:31:38.000000000 -0400
++++ linux-2.6.23.noarch/drivers/net/wireless/hostap/hostap_plx.c	2008-01-17 13:21:40.000000000 -0500
+@@ -608,7 +608,7 @@ static void prism2_plx_remove(struct pci
+ 
+ MODULE_DEVICE_TABLE(pci, prism2_plx_id_table);
+ 
+-static struct pci_driver prism2_plx_drv_id = {
++static struct pci_driver prism2_plx_driver = {
+ 	.name		= "hostap_plx",
+ 	.id_table	= prism2_plx_id_table,
+ 	.probe		= prism2_plx_probe,
+@@ -618,13 +618,13 @@ static struct pci_driver prism2_plx_drv_
+ 
+ static int __init init_prism2_plx(void)
  {
--	rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR2, &mac,
-+	rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR2, mac,
- 				      (3 * sizeof(__le16)));
+-	return pci_register_driver(&prism2_plx_drv_id);
++	return pci_register_driver(&prism2_plx_driver);
  }
  
+ 
+ static void __exit exit_prism2_plx(void)
+ {
+-	pci_unregister_driver(&prism2_plx_drv_id);
++	pci_unregister_driver(&prism2_plx_driver);
+ }
+ 
+ 




More information about the fedora-extras-commits mailing list