rpms/kernel/F-9 kernel.spec, 1.657, 1.658 linux-2.6-wireless-pending.patch, 1.48, 1.49 linux-2.6-wireless.patch, 1.36, 1.37

John W. Linville (linville) fedora-extras-commits at redhat.com
Thu May 29 18:33:58 UTC 2008


Author: linville

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

Modified Files:
	kernel.spec linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Log Message:
Upstream wireless fixes from 2008-05-28


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/kernel.spec,v
retrieving revision 1.657
retrieving revision 1.658
diff -u -r1.657 -r1.658
--- kernel.spec	28 May 2008 05:13:07 -0000	1.657
+++ kernel.spec	29 May 2008 18:33:04 -0000	1.658
@@ -1847,6 +1847,10 @@
 %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 May 29 2008 John W. Linville <linville at redhat.com> 2.6.25.4-39
+- Upstream wireless fixes from 2008-05-28
+  (http://marc.info/?l=linux-wireless&m=121201250110162&w=2)
+
 * Wed May 28 2008 Dave Airlie <airlied at redhat.com> 2.6.25.4-38
 - drm-radeon-update.patch - Add R500 support along with updated radeon driver
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.48 -r 1.49 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/linux-2.6-wireless-pending.patch,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- linux-2.6-wireless-pending.patch	27 May 2008 20:03:45 -0000	1.48
+++ linux-2.6-wireless-pending.patch	29 May 2008 18:33:04 -0000	1.49
@@ -2862,8 +2862,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 diff -up linux-2.6.25.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.25.noarch/drivers/net/wireless/adm8211.c
---- linux-2.6.25.noarch/drivers/net/wireless/adm8211.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.c	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/adm8211.c.orig	2008-05-29 14:16:48.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.c	2008-05-29 14:19:52.000000000 -0400
 @@ -306,11 +306,10 @@ static int adm8211_get_tx_stats(struct i
  				struct ieee80211_tx_queue_stats *stats)
  {
@@ -3012,8 +3012,8 @@
  
  	return 0;
 diff -up linux-2.6.25.noarch/drivers/net/wireless/adm8211.h.orig linux-2.6.25.noarch/drivers/net/wireless/adm8211.h
---- linux-2.6.25.noarch/drivers/net/wireless/adm8211.h.orig	2008-05-27 12:56:42.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.h	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/adm8211.h.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.h	2008-05-29 14:19:52.000000000 -0400
 @@ -443,7 +443,6 @@ struct adm8211_rx_ring_info {
  struct adm8211_tx_ring_info {
  	struct sk_buff *skb;
@@ -3023,8 +3023,8 @@
  };
  
 diff -up linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig linux-2.6.25.noarch/drivers/net/wireless/airo.c
---- linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig	2008-05-29 14:16:47.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-05-29 14:19:52.000000000 -0400
 @@ -1148,7 +1148,6 @@ static u8 airo_dbm_to_pct (tdsRssiEntry 
  static void airo_networks_free(struct airo_info *ai);
  
@@ -3193,8 +3193,8 @@
  	}
  	buffer = (u16*)skb_put (skb, len + hdrlen);
 diff -up linux-2.6.25.noarch/drivers/net/wireless/arlan.h.orig linux-2.6.25.noarch/drivers/net/wireless/arlan.h
---- linux-2.6.25.noarch/drivers/net/wireless/arlan.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/arlan.h	2008-05-27 12:59:24.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/arlan.h.orig	2008-05-29 14:16:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/arlan.h	2008-05-29 14:19:52.000000000 -0400
 @@ -330,7 +330,6 @@ struct TxParam
  #define TX_RING_SIZE 2
  /* Information that need to be kept for each board. */
@@ -3204,8 +3204,8 @@
        struct arlan_shmem * conf;
  
 diff -up linux-2.6.25.noarch/drivers/net/wireless/arlan-main.c.orig linux-2.6.25.noarch/drivers/net/wireless/arlan-main.c
---- linux-2.6.25.noarch/drivers/net/wireless/arlan-main.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/arlan-main.c	2008-05-27 12:59:24.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/arlan-main.c.orig	2008-05-29 14:16:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/arlan-main.c	2008-05-29 14:19:52.000000000 -0400
 @@ -125,7 +125,7 @@ static inline int arlan_drop_tx(struct n
  {
  	struct arlan_private *priv = netdev_priv(dev);
@@ -3290,8 +3290,8 @@
  
  
 diff -up linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c
---- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-05-29 14:16:48.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-05-29 14:19:52.000000000 -0400
 @@ -167,8 +167,7 @@ static struct pci_driver ath5k_pci_drive
  /*
   * Prototypes - MAC 802.11 stack related functions
@@ -3581,8 +3581,8 @@
  		sc->bbuf->skb = NULL;
  	else
 diff -up linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h.orig linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h
---- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-05-29 14:16:48.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h	2008-05-29 14:19:52.000000000 -0400
 @@ -60,7 +60,6 @@ struct ath5k_buf {
  	dma_addr_t		daddr;	/* physical addr of desc */
  	struct sk_buff		*skb;	/* skbuff for buf */
@@ -3602,8 +3602,8 @@
  	struct ieee80211_hw	*hw;		/* IEEE 802.11 common */
  	struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS];
 diff -up linux-2.6.25.noarch/drivers/net/wireless/atmel.c.orig linux-2.6.25.noarch/drivers/net/wireless/atmel.c
---- linux-2.6.25.noarch/drivers/net/wireless/atmel.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/atmel.c	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/atmel.c.orig	2008-05-29 14:16:47.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/atmel.c	2008-05-29 14:19:52.000000000 -0400
 @@ -433,7 +433,6 @@ struct atmel_private {
  	struct net_device *dev;
  	struct device *sys_dev;
@@ -3783,8 +3783,8 @@
  	dev->do_ioctl = atmel_ioctl;
  	dev->irq = irq;
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h
---- linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig	2008-05-29 14:17:08.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h	2008-05-29 14:19:52.000000000 -0400
 @@ -410,8 +410,7 @@ enum {
  #define B43_IRQ_TIMEOUT			0x80000000
  
@@ -3829,8 +3829,8 @@
 -	struct ieee80211_tx_control beacon_txctl;
  	bool beacon0_uploaded;
  	bool beacon1_uploaded;
- 	struct work_struct beacon_update_trigger;
-@@ -767,6 +785,13 @@ struct b43_firmware {
+ 	bool beacon_templates_virgin; /* Never wrote the templates? */
+@@ -768,6 +786,13 @@ struct b43_firmware {
  	u16 rev;
  	/* Firmware patchlevel */
  	u16 patch;
@@ -3844,7 +3844,7 @@
  };
  
  /* Device (802.11 core) initialization status. */
-@@ -940,22 +965,6 @@ static inline bool __b43_warn_on_dummy(b
+@@ -941,22 +966,6 @@ static inline bool __b43_warn_on_dummy(b
  # define B43_WARN_ON(x)	__b43_warn_on_dummy(unlikely(!!(x)))
  #endif
  
@@ -3868,8 +3868,8 @@
  #define INT_TO_Q52(i)	((i) << 2)
  /* Convert a Q5.2 value to an integer (precision loss!) */
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.c	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.c.orig	2008-05-29 14:16:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.c	2008-05-29 14:19:52.000000000 -0400
 @@ -270,24 +270,22 @@ static int restart_write_file(struct b43
  	return err;
  }
@@ -3995,8 +3995,8 @@
  #undef add_dyn_dbg
  }
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.h
---- linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.h	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.h.orig	2008-05-29 14:16:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/debugfs.h	2008-05-29 14:19:52.000000000 -0400
 @@ -10,6 +10,7 @@ enum b43_dyndbg {		/* Dynamic debugging 
  	B43_DBG_DMAVERBOSE,
  	B43_DBG_PWORK_FAST,
@@ -4006,8 +4006,8 @@
  };
  
 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
---- linux-2.6.25.noarch/drivers/net/wireless/b43/dma.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/dma.c	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/dma.c.orig	2008-05-29 14:16:47.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/dma.c	2008-05-29 14:19:52.000000000 -0400
 @@ -1131,10 +1131,10 @@ struct b43_dmaring *parse_cookie(struct 
  }
  
@@ -4158,8 +4158,8 @@
  	}
  }
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/dma.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43/dma.h
---- linux-2.6.25.noarch/drivers/net/wireless/b43/dma.h.orig	2008-05-27 12:56:42.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/dma.h	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/dma.h.orig	2008-05-29 14:16:47.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/dma.h	2008-05-29 14:19:52.000000000 -0400
 @@ -181,7 +181,6 @@ struct b43_dmadesc_meta {
  	dma_addr_t dmaaddr;
  	/* ieee80211 TX status. Only used once per 802.11 frag. */
@@ -4178,8 +4178,8 @@
  			     const struct b43_txstatus *status);
  
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h
---- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig	2008-05-29 14:16:47.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h	2008-05-29 14:19:52.000000000 -0400
 @@ -823,23 +823,6 @@ void b43legacydbg(struct b43legacy_wl *w
  # define b43legacydbg(wl, fmt...) do { /* nothing */ } while (0)
  #endif /* DEBUG */
@@ -4205,8 +4205,8 @@
  #define Q52_FMT		"%u.%u"
  #define Q52_ARG(q52)	((q52) / 4), (((q52) & 3) * 100 / 4)
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c.orig	2008-05-29 14:16:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c	2008-05-29 14:19:52.000000000 -0400
 @@ -1205,10 +1205,10 @@ struct b43legacy_dmaring *parse_cookie(s
  }
  
@@ -4325,8 +4325,8 @@
  	}
  }
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.h.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.h
---- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.h.orig	2008-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.h	2008-05-27 12:59:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.h.orig	2008-05-29 14:16:25.000000000 -0400
[...2484 lines suppressed...]
++++ linux-2.6.25.noarch/net/mac80211/rc80211_pid_algo.c	2008-05-29 14:19:53.000000000 -0400
 @@ -237,8 +237,7 @@ static void rate_control_pid_sample(stru
  }
  
@@ -45202,8 +45202,8 @@
  #ifdef CONFIG_MAC80211_DEBUGFS
  	rate_control_pid_event_tx_rate(
 diff -up linux-2.6.25.noarch/net/mac80211/rc80211_pid_debugfs.c.orig linux-2.6.25.noarch/net/mac80211/rc80211_pid_debugfs.c
---- linux-2.6.25.noarch/net/mac80211/rc80211_pid_debugfs.c.orig	2008-05-27 12:56:42.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/rc80211_pid_debugfs.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/rc80211_pid_debugfs.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/rc80211_pid_debugfs.c	2008-05-29 14:19:53.000000000 -0400
 @@ -39,11 +39,11 @@ static void rate_control_pid_event(struc
  }
  
@@ -45230,8 +45230,8 @@
  	case RC_PID_EVENT_TYPE_RATE_CHANGE:
  		p += snprintf(pb + p, length - p, "rate_change %d %d",
 diff -up linux-2.6.25.noarch/net/mac80211/rc80211_pid.h.orig linux-2.6.25.noarch/net/mac80211/rc80211_pid.h
---- linux-2.6.25.noarch/net/mac80211/rc80211_pid.h.orig	2008-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/rc80211_pid.h	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/rc80211_pid.h.orig	2008-05-29 14:16:26.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/rc80211_pid.h	2008-05-29 14:19:53.000000000 -0400
 @@ -61,7 +61,7 @@ enum rc_pid_event_type {
  union rc_pid_event_data {
  	/* RC_PID_EVENT_TX_STATUS */
@@ -45251,8 +45251,8 @@
  void rate_control_pid_event_rate_change(struct rc_pid_event_buffer *buf,
  					       int index, int rate);
 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-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/rx.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/rx.c.orig	2008-05-29 14:17:08.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/rx.c	2008-05-29 14:19:53.000000000 -0400
 @@ -77,6 +77,134 @@ static inline int should_drop_frame(stru
  	return 0;
  }
@@ -45724,8 +45724,8 @@
  	rcu_read_unlock();
  }
 diff -up linux-2.6.25.noarch/net/mac80211/sta_info.c.orig linux-2.6.25.noarch/net/mac80211/sta_info.c
---- linux-2.6.25.noarch/net/mac80211/sta_info.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/sta_info.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/sta_info.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/sta_info.c	2008-05-29 14:19:53.000000000 -0400
 @@ -202,14 +202,12 @@ void sta_info_destroy(struct sta_info *s
  		dev_kfree_skb_any(skb);
  
@@ -45812,8 +45812,8 @@
  
  
 diff -up linux-2.6.25.noarch/net/mac80211/sta_info.h.orig linux-2.6.25.noarch/net/mac80211/sta_info.h
---- linux-2.6.25.noarch/net/mac80211/sta_info.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/sta_info.h	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/sta_info.h.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/sta_info.h	2008-05-29 14:19:53.000000000 -0400
 @@ -32,7 +32,7 @@
   * @WLAN_STA_WDS: Station is one of our WDS peers.
   * @WLAN_STA_PSPOLL: Station has just PS-polled us.
@@ -45973,8 +45973,8 @@
  /* Maximum number of concurrently registered stations */
  #define MAX_STA_COUNT 2007
 diff -up linux-2.6.25.noarch/net/mac80211/tkip.c.orig linux-2.6.25.noarch/net/mac80211/tkip.c
---- linux-2.6.25.noarch/net/mac80211/tkip.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/tkip.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/tkip.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/tkip.c	2008-05-29 14:19:53.000000000 -0400
 @@ -6,25 +6,23 @@
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
@@ -46355,8 +46355,8 @@
 -
 -
 diff -up linux-2.6.25.noarch/net/mac80211/tkip.h.orig linux-2.6.25.noarch/net/mac80211/tkip.h
---- linux-2.6.25.noarch/net/mac80211/tkip.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/tkip.h	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/tkip.h.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/tkip.h	2008-05-29 14:19:53.000000000 -0400
 @@ -13,12 +13,8 @@
  #include <linux/crypto.h>
  #include "key.h"
@@ -46373,8 +46373,8 @@
  				 struct ieee80211_key *key,
  				 u8 *pos, size_t payload_len, u8 *ta);
 diff -up linux-2.6.25.noarch/net/mac80211/tx.c.orig linux-2.6.25.noarch/net/mac80211/tx.c
---- linux-2.6.25.noarch/net/mac80211/tx.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/tx.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/tx.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/tx.c	2008-05-29 14:19:53.000000000 -0400
 @@ -91,11 +91,12 @@ static u16 ieee80211_duration(struct iee
  			      int next_frag_len)
  {
@@ -47633,8 +47633,8 @@
  	if (res == TX_DROP) {
  		I802_DEBUG_INC(local->tx_handlers_drop);
 diff -up linux-2.6.25.noarch/net/mac80211/util.c.orig linux-2.6.25.noarch/net/mac80211/util.c
---- linux-2.6.25.noarch/net/mac80211/util.c.orig	2008-05-27 12:56:42.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/util.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/util.c.orig	2008-05-29 14:17:08.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/util.c	2008-05-29 14:19:53.000000000 -0400
 @@ -258,7 +258,7 @@ EXPORT_SYMBOL(ieee80211_generic_frame_du
  
  __le16 ieee80211_rts_duration(struct ieee80211_hw *hw,
@@ -47765,8 +47765,8 @@
  }
  EXPORT_SYMBOL(ieee80211_wake_queues);
 diff -up linux-2.6.25.noarch/net/mac80211/wep.c.orig linux-2.6.25.noarch/net/mac80211/wep.c
---- linux-2.6.25.noarch/net/mac80211/wep.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wep.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wep.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wep.c	2008-05-29 14:19:53.000000000 -0400
 @@ -333,11 +333,16 @@ ieee80211_crypto_wep_decrypt(struct ieee
  
  static int wep_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
@@ -47795,8 +47795,8 @@
  
  	if (wep_encrypt_skb(tx, tx->skb) < 0) {
 diff -up linux-2.6.25.noarch/net/mac80211/wep.h.orig linux-2.6.25.noarch/net/mac80211/wep.h
---- linux-2.6.25.noarch/net/mac80211/wep.h.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wep.h	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wep.h.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wep.h	2008-05-29 14:19:53.000000000 -0400
 @@ -26,7 +26,7 @@ int ieee80211_wep_encrypt(struct ieee802
  			  struct ieee80211_key *key);
  int ieee80211_wep_decrypt(struct ieee80211_local *local, struct sk_buff *skb,
@@ -47807,8 +47807,8 @@
  ieee80211_rx_result
  ieee80211_crypto_wep_decrypt(struct ieee80211_rx_data *rx);
 diff -up linux-2.6.25.noarch/net/mac80211/wext.c.orig linux-2.6.25.noarch/net/mac80211/wext.c
---- linux-2.6.25.noarch/net/mac80211/wext.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wext.c	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wext.c.orig	2008-05-29 14:17:08.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wext.c	2008-05-29 14:19:53.000000000 -0400
 @@ -169,14 +169,26 @@ static int ieee80211_ioctl_giwrange(stru
  	range->num_encoding_sizes = 2;
  	range->max_encoding_tokens = NUM_DEFAULT_KEYS;
@@ -47842,7 +47842,7 @@
  	range->avg_qual.updated = local->wstats_flags;
  
  	range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
-@@ -995,8 +1007,8 @@ static struct iw_statistics *ieee80211_g
+@@ -1000,8 +1012,8 @@ static struct iw_statistics *ieee80211_g
  		wstats->qual.noise = 0;
  		wstats->qual.updated = IW_QUAL_ALL_INVALID;
  	} else {
@@ -47854,8 +47854,8 @@
  		wstats->qual.updated = local->wstats_flags;
  	}
 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-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wme.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wme.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wme.c	2008-05-29 14:19:53.000000000 -0400
 @@ -19,16 +19,22 @@
  #include "wme.h"
  
@@ -48230,8 +48230,8 @@
  	if (requeue)
  		ieee80211_requeue(local, agg_queue);
 diff -up linux-2.6.25.noarch/net/mac80211/wme.h.orig linux-2.6.25.noarch/net/mac80211/wme.h
---- linux-2.6.25.noarch/net/mac80211/wme.h.orig	2008-05-27 12:56:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wme.h	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wme.h.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wme.h	2008-05-29 14:19:53.000000000 -0400
 @@ -31,7 +31,7 @@ static inline int WLAN_FC_IS_QOS_DATA(u1
  	return (fc & 0x8C) == 0x88;
  }
@@ -48242,8 +48242,8 @@
  int ieee80211_qdisc_installed(struct net_device *dev);
  int ieee80211_ht_agg_queue_add(struct ieee80211_local *local,
 diff -up linux-2.6.25.noarch/net/mac80211/wpa.c.orig linux-2.6.25.noarch/net/mac80211/wpa.c
---- linux-2.6.25.noarch/net/mac80211/wpa.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wpa.c	2008-05-27 12:59:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wpa.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wpa.c	2008-05-29 14:19:53.000000000 -0400
 @@ -176,22 +176,32 @@ ieee80211_rx_h_michael_mic_verify(struct
  	skb_trim(skb, skb->len - MICHAEL_MIC_LEN);
  
@@ -48412,8 +48412,8 @@
  		}
  	}
 diff -up linux-2.6.25.noarch/net/wireless/core.c.orig linux-2.6.25.noarch/net/wireless/core.c
---- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.c	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-05-29 14:16:46.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c	2008-05-29 14:19:53.000000000 -0400
 @@ -143,8 +143,11 @@ void cfg80211_put_dev(struct cfg80211_re
  int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
  			char *newname)
@@ -48477,8 +48477,8 @@
  
  /* exported functions */
 diff -up linux-2.6.25.noarch/net/wireless/radiotap.c.orig linux-2.6.25.noarch/net/wireless/radiotap.c
---- linux-2.6.25.noarch/net/wireless/radiotap.c.orig	2008-05-27 12:59:05.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-05-27 12:59:23.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/radiotap.c.orig	2008-05-29 14:16:26.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-05-29 14:19:53.000000000 -0400
 @@ -59,23 +59,21 @@ int ieee80211_radiotap_iterator_init(
  		return -EINVAL;
  

linux-2.6-wireless.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.36 -r 1.37 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-9/linux-2.6-wireless.patch,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- linux-2.6-wireless.patch	21 May 2008 20:52:41 -0000	1.36
+++ linux-2.6-wireless.patch	29 May 2008 18:33:04 -0000	1.37
@@ -1,3 +1,330 @@
+commit c97c23e38625f59e3e9869664eeeb0cab1822948
+Author: Senthil Balasubramanian <senthilkumar at atheros.com>
+Date:   Wed May 28 23:15:32 2008 +0530
+
+    mac80211: fix alignment issue with compare_ether_addr()
+    
+    This addresses an alignment issue with compare_ether_addr().
+    The addresses passed to compare_ether_addr should be two bytes aligned.
+    It may function properly in x86 platform. However may not work properly
+    on IA-64 or ARM processor.
+    
+    This also fixes a typo in mlme.c where the sk_buff struct name is incorect.
+    Though sizeof() works for any incorrect structure pointer name as its just
+    a pointer length that we want, lets just fix it.
+    
+    Signed-off-by: Senthil Balasubramanian <senthilkumar at atheros.com>
+    Signed-off-by: Luis R. Rodriguez <lrodriguez at atheros.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 70d251b24c44ab2fcba1807a5206e844cf10eb38
+Author: Senthil Balasubramanian <senthilkumar at atheros.com>
+Date:   Wed May 28 20:08:12 2008 +0530
+
+    mac80211: Fix for NULL pointer dereference in sta_info_get()
+    
+    This addresses a NULL pointer dereference in sta_info_get().
+    TID and sta_info are extracted in ADDBA Timer expiry function
+    through the timer handler's argument.
+    
+    The problem is extracging the TID (which was stored in
+    timer_to_tid[] array of type "u8") through "int *" typecast which
+    may also yield unwanted bytes for the MSB of TID that results
+    in incorrect sta_info and ieee80211_local pointers.
+    
+    ieee80211_local pointer is NULL as illustrated below, it crashes in
+    sta_info_get(). The problem started when extracting ieee80211_local
+    pointer out of sta_info iteself and eventually crashed in
+    stat_info_get().
+    
+    The proper way to fix is to change the data type of TID to u8
+    instead of u16. However changing all the occurences requires
+    some prototype changes as well. We should fix this in upcoming
+    patches.
+    
+    Signed-off-by: Senthil Balasubramanian <senthilkumar at atheros.com>
+    Signed-off-by: Luis Rodriguez <lrodriguez at atheros.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f6d97104890203ba9c2cf8e34894c4c8e64cb880
+Author: Yi Zhu <yi.zhu at intel.com>
+Date:   Tue May 27 17:50:50 2008 +0300
+
+    mac80211: fix a typo in ieee80211_handle_filtered_frame comment
+    
+    fix a typo in ieee80211_handle_filtered_frame comment
+    
+    Signed-off-by: Yi Zhu <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a7624837261b55259d4a88309fd88529643fbb80
+Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
+Date:   Tue May 27 11:15:08 2008 +0300
+
+    rndis_wlan: add missing range check for power_output modparam
+    
+    Range check for power_output were missing.
+    
+    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 135a5484c3e0c6710035630b630cef3c856b78e2
+Author: Guy Cohen <guy.cohen at intel.com>
+Date:   Tue May 27 11:29:35 2008 +0800
+
+    iwlwifi: fix rate scale TLC column selection bug
+    
+    This patch fixes a case that a wrong maximal rate is selected when
+    searching for better configurations.
+    
+    Signed-off-by: Guy Cohen <guy.cohen at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 47cfd463962ab0748ecbad761ff6ef2916b54aac
+Author: Guy Cohen <guy.cohen at intel.com>
+Date:   Tue May 27 11:29:34 2008 +0800
+
+    iwlwifi: fix exit from stay_in_table state
+    
+    When exiting from stay in table state (e.g. timer expiration),
+    all the statistics are reset and the RS flow should not continue
+    but only after enough statistics are collected again.
+    
+    Signed-off-by: Guy Cohen <guy.cohen at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4364623cb79d02945ace7a4faa1f11e617dde198
+Author: Scott Ashcroft <scott.ashcroft at talk21.com>
+Date:   Tue May 27 00:06:15 2008 +0300
+
+    rndis_wlan: Make connections to TKIP PSK networks work
+    
+    This patch allows the rndis_wlan driver to connect to TKIP PSK
+    networks.  It uses the ASSOCIATION_INFORMATION RNDIS call to pull back
+    the IEs and sends them back to userspace using wireless events. Tested
+    on a few wireless networks I have access to. Based on the similar
+    code in ndiswrapper.
+    
+    Signed-off-by: Scott Ashcroft <scott.ashcroft at talk21.com>
+    [edit: cleanups]
+    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d4231ca3e162387a2b6964dacaa83604e065c4e9
+Author: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+Date:   Fri May 23 10:15:26 2008 -0700
+
+    mac80211 : Fixes the status message for iwconfig
+    
+    iwconfig was showing incorrect status messages when disassociated.
+    Patch fixes this by always checking for association status in
+    ioctl calls for getting ap address.
+    
+    Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar at intel.com>
+    Acked-by: Dan Williams <dcbw at redhat.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 633257d3db547e7553500f05e0aa2692c876d7a5
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Fri May 23 18:14:02 2008 +0200
+
+    rt2x00: Use atomic interface iteration in irq context
+    
+    rt2x00lib_beacondone() is called from interrupt context,
+    this means we cannot use the mac80211 interface iterator
+    that uses the rtnl lock (since that uses a mutex which can sleep).
+    Instead we should use the atomic mac80211 interface iterator.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f06a0f486dc8bbe8808f46b81fbfd73241529fae
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Fri May 23 18:13:56 2008 +0200
+
+    rt2x00: Reset antenna RSSI after switch
+    
+    When the antenna configuration has changed we should reset
+    the antenna RSSI value. Otherwise the value will be influenced
+    by the previous configuration quality which in turn will affect
+    the antenna diversity.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 2088d4174e4292aef892bb7095fc3c3ea5bd117c
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Fri May 23 18:13:49 2008 +0200
+
+    rt2x00: Don't count retries as failure
+    
+    Link quality estimation became quite low for all rt2x00 drivers
+    because the number of retries it took to send the frame were
+    counted as failure.
+    This does not correspond to the legacy driver link quality calculation,
+    by not counting it we will send somewhat more optimistic values to
+    mac80211.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0f3e63a55b1a7b695a79bf3eec2ff5ab6b336037
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Fri May 23 18:13:41 2008 +0200
+
+    rt2x00: Fix memleak in tx() path
+    
+    When the tx() handler runs while the device has disapeared,
+    we did return NETDEV_TX_OK but didn't free the skb.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9381be059bf5831d259e8735005cfa35b7488543
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Fri May 23 01:36:36 2008 +0300
+
+    mac80211: reorder channel and freq reporting in wext scan report
+    
+    This patch switch order of channel and freq (SIOCGIWFREQ) reports
[...229964 lines suppressed...]
 +
-+	for (i = 0; i < sprom_size_words; i++)
-+		pos += snprintf(buf + pos, buf_len - pos - 1,
-+				"%04X", swab16(sprom[i]) & 0xFFFF);
-+	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
++	if (freq < 2484)
++		return (freq - 2407) / 5;
 +
-+	return pos + 1;
++	/* FIXME: 802.11j 17.3.8.3.2 */
++	return freq/5 - 1000;
 +}
++EXPORT_SYMBOL(ieee80211_frequency_to_channel);
 +
-+static int hex2sprom(u16 *sprom, const char *dump, size_t len,
-+		     size_t sprom_size_words)
++struct ieee80211_channel *__ieee80211_get_channel(struct wiphy *wiphy,
++						  int freq)
 +{
-+	char tmp[5] = { 0 };
-+	int cnt = 0;
-+	unsigned long parsed;
++	enum ieee80211_band band;
++	struct ieee80211_supported_band *sband;
++	int i;
 +
-+	if (len < sprom_size_words * 2)
-+		return -EINVAL;
++	for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
++		sband = wiphy->bands[band];
 +
-+	while (cnt < sprom_size_words) {
-+		memcpy(tmp, dump, 4);
-+		dump += 4;
-+		parsed = simple_strtoul(tmp, NULL, 16);
-+		sprom[cnt++] = swab16((u16)parsed);
++		if (!sband)
++			continue;
++
++		for (i = 0; i < sband->n_channels; i++) {
++			if (sband->channels[i].center_freq == freq)
++				return &sband->channels[i];
++		}
 +	}
 +
-+	return 0;
++	return NULL;
 +}
++EXPORT_SYMBOL(__ieee80211_get_channel);
 +
-+/* Common sprom device-attribute show-handler */
-+ssize_t ssb_attr_sprom_show(struct ssb_bus *bus, char *buf,
-+			    int (*sprom_read)(struct ssb_bus *bus, u16 *sprom))
++static void set_mandatory_flags_band(struct ieee80211_supported_band *sband,
++				     enum ieee80211_band band)
 +{
-+	u16 *sprom;
-+	int err = -ENOMEM;
-+	ssize_t count = 0;
-+	size_t sprom_size_words = bus->sprom_size;
-+
-+	sprom = kcalloc(sprom_size_words, sizeof(u16), GFP_KERNEL);
-+	if (!sprom)
-+		goto out;
++	int i, want;
 +
-+	/* Use interruptible locking, as the SPROM write might
-+	 * be holding the lock for several seconds. So allow userspace
-+	 * to cancel operation. */
-+	err = -ERESTARTSYS;
-+	if (mutex_lock_interruptible(&bus->sprom_mutex))
-+		goto out_kfree;
-+	err = sprom_read(bus, sprom);
-+	mutex_unlock(&bus->sprom_mutex);
++	switch (band) {
++	case IEEE80211_BAND_5GHZ:
++		want = 3;
++		for (i = 0; i < sband->n_bitrates; i++) {
++			if (sband->bitrates[i].bitrate == 60 ||
++			    sband->bitrates[i].bitrate == 120 ||
++			    sband->bitrates[i].bitrate == 240) {
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_MANDATORY_A;
++				want--;
++			}
++		}
++		WARN_ON(want);
++		break;
++	case IEEE80211_BAND_2GHZ:
++		want = 7;
++		for (i = 0; i < sband->n_bitrates; i++) {
++			if (sband->bitrates[i].bitrate == 10) {
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_MANDATORY_B |
++					IEEE80211_RATE_MANDATORY_G;
++				want--;
++			}
 +
-+	if (!err)
-+		count = sprom2hex(sprom, buf, PAGE_SIZE, sprom_size_words);
++			if (sband->bitrates[i].bitrate == 20 ||
++			    sband->bitrates[i].bitrate == 55 ||
++			    sband->bitrates[i].bitrate == 110 ||
++			    sband->bitrates[i].bitrate == 60 ||
++			    sband->bitrates[i].bitrate == 120 ||
++			    sband->bitrates[i].bitrate == 240) {
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_MANDATORY_G;
++				want--;
++			}
 +
-+out_kfree:
-+	kfree(sprom);
-+out:
-+	return err ? err : count;
++			if (sband->bitrates[i].bitrate != 10 &&
++			    sband->bitrates[i].bitrate != 20 &&
++			    sband->bitrates[i].bitrate != 55 &&
++			    sband->bitrates[i].bitrate != 110)
++				sband->bitrates[i].flags |=
++					IEEE80211_RATE_ERP_G;
++		}
++		WARN_ON(want != 0 && want != 3 && want != 6);
++		break;
++	case IEEE80211_NUM_BANDS:
++		WARN_ON(1);
++		break;
++	}
 +}
 +
-+/* Common sprom device-attribute store-handler */
-+ssize_t ssb_attr_sprom_store(struct ssb_bus *bus,
-+			     const char *buf, size_t count,
-+			     int (*sprom_check_crc)(const u16 *sprom, size_t size),
-+			     int (*sprom_write)(struct ssb_bus *bus, const u16 *sprom))
++void ieee80211_set_bitrate_flags(struct wiphy *wiphy)
 +{
-+	u16 *sprom;
-+	int res = 0, err = -ENOMEM;
-+	size_t sprom_size_words = bus->sprom_size;
-+
-+	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
-+	if (!sprom)
-+		goto out;
-+	err = hex2sprom(sprom, buf, count, sprom_size_words);
-+	if (err) {
-+		err = -EINVAL;
-+		goto out_kfree;
-+	}
-+	err = sprom_check_crc(sprom, sprom_size_words);
-+	if (err) {
-+		err = -EINVAL;
-+		goto out_kfree;
-+	}
++	enum ieee80211_band band;
 +
-+	/* Use interruptible locking, as the SPROM write might
-+	 * be holding the lock for several seconds. So allow userspace
-+	 * to cancel operation. */
-+	err = -ERESTARTSYS;
-+	if (mutex_lock_interruptible(&bus->sprom_mutex))
-+		goto out_kfree;
-+	err = ssb_devices_freeze(bus);
-+	if (err == -EOPNOTSUPP) {
-+		ssb_printk(KERN_ERR PFX "SPROM write: Could not freeze devices. "
-+			   "No suspend support. Is CONFIG_PM enabled?\n");
-+		goto out_unlock;
-+	}
-+	if (err) {
-+		ssb_printk(KERN_ERR PFX "SPROM write: Could not freeze all devices\n");
-+		goto out_unlock;
-+	}
-+	res = sprom_write(bus, sprom);
-+	err = ssb_devices_thaw(bus);
-+	if (err)
-+		ssb_printk(KERN_ERR PFX "SPROM write: Could not thaw all devices\n");
-+out_unlock:
-+	mutex_unlock(&bus->sprom_mutex);
-+out_kfree:
-+	kfree(sprom);
-+out:
-+	if (res)
-+		return res;
-+	return err ? err : count;
++	for (band = 0; band < IEEE80211_NUM_BANDS; band++)
++		if (wiphy->bands[band])
++			set_mandatory_flags_band(wiphy->bands[band], band);
 +}
+diff -up linux-2.6.25.noarch/net/wireless/wext.c.orig linux-2.6.25.noarch/net/wireless/wext.c
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig	2008-05-29 14:16:32.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c	2008-05-29 14:16:46.000000000 -0400
+@@ -1157,7 +1157,7 @@ static void rtmsg_iwinfo(struct net_devi
+ 	struct sk_buff *skb;
+ 	int err;
+ 
+-	if (dev->nd_net != &init_net)
++	if (dev_net(dev) != &init_net)
+ 		return;
+ 
+ 	skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC);




More information about the fedora-extras-commits mailing list