rpms/kernel/F-8 config-generic, 1.69, 1.70 kernel.spec, 1.477, 1.478 linux-2.6-wireless-fixups.patch, 1.2, 1.3 linux-2.6-wireless-pending.patch, 1.48, 1.49 linux-2.6-wireless.patch, 1.42, 1.43

John W. Linville (linville) fedora-extras-commits at redhat.com
Thu Jun 26 19:30:53 UTC 2008


Author: linville

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

Modified Files:
	config-generic kernel.spec linux-2.6-wireless-fixups.patch 
	linux-2.6-wireless-pending.patch linux-2.6-wireless.patch 
Log Message:
Upstream wireless updates from 2008-06-14 ; Upstream wireless fixes from 2008-06-25


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/config-generic,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- config-generic	14 Jun 2008 07:55:58 -0000	1.69
+++ config-generic	26 Jun 2008 19:29:52 -0000	1.70
@@ -1323,6 +1323,7 @@
 CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
 CONFIG_IWL3945_QOS=y
 CONFIG_IWL3945_LEDS=y
+CONFIG_MAC80211_HWSIM=m
 CONFIG_NORTEL_HERMES=m
 CONFIG_P54_COMMON=m
 CONFIG_P54_USB=m


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.477
retrieving revision 1.478
diff -u -r1.477 -r1.478
--- kernel.spec	25 Jun 2008 02:43:38 -0000	1.477
+++ kernel.spec	26 Jun 2008 19:29:52 -0000	1.478
@@ -1821,6 +1821,12 @@
 
 
 %changelog
+* Wed Jun 25 2008 John W. Linville <linville at redhat.com> 2.6.25.9-38
+- Upstream wireless fixes from 2008-06-25
+  (http://marc.info/?l=linux-wireless&m=121440912502527&w=2)
+- Upstream wireless updates from 2008-06-14
+  (http://marc.info/?l=linux-netdev&m=121346686508160&w=2)
+
 * Tue Jun 24 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25.9-37
 - Linux 2.6.25.9
 

linux-2.6-wireless-fixups.patch:

Index: linux-2.6-wireless-fixups.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-wireless-fixups.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-wireless-fixups.patch	29 May 2008 18:46:09 -0000	1.2
+++ linux-2.6-wireless-fixups.patch	26 Jun 2008 19:29:52 -0000	1.3
@@ -1,6 +1,6 @@
 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 14:51:16.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-06-24 14:55:10.000000000 -0400
 @@ -3659,7 +3659,7 @@ void mpi_receive_802_11 (struct airo_inf
  	ptr += hdrlen;
  	if (hdrlen == 24)
@@ -208,8 +208,8 @@
  	return 0;
  
 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 14:51:16.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-06-24 14:55:10.000000000 -0400
 @@ -58,6 +58,10 @@
  #include "reg.h"
  #include "debug.h"
@@ -234,8 +234,8 @@
  			pos &= 0x3f;
  			mfilt[pos / 32] |= (1 << (pos % 32));
 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 14:51:16.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h	2008-06-24 14:55:10.000000000 -0400
 @@ -965,6 +965,22 @@ static inline bool __b43_warn_on_dummy(b
  # define B43_WARN_ON(x)	__b43_warn_on_dummy(unlikely(!!(x)))
  #endif
@@ -260,8 +260,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/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 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h	2008-06-24 14:55:10.000000000 -0400
 @@ -823,6 +823,23 @@ void b43legacydbg(struct b43legacy_wl *w
  # define b43legacydbg(wl, fmt...) do { /* nothing */ } while (0)
  #endif /* DEBUG */
@@ -287,8 +287,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/main.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c	2008-06-24 14:55:10.000000000 -0400
 @@ -846,10 +846,10 @@ static void handle_irq_noise(struct b43l
  	/* Get the noise samples. */
  	B43legacy_WARN_ON(dev->noisecalc.nr_samples >= 8);
@@ -314,8 +314,8 @@
  
  			iv = (const struct b43legacy_iv *)((const uint8_t *)iv +
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c	2008-06-24 14:55:10.000000000 -0400
 @@ -1088,7 +1088,7 @@ static void b43legacy_phy_initg(struct b
  		 * the value 0x7FFFFFFF here. I think that is some weird
  		 * compiler optimization in the original driver.
@@ -373,8 +373,8 @@
  	return 0;
  }
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c	2008-06-24 14:55:10.000000000 -0400
 @@ -357,7 +357,7 @@ void b43legacy_nrssi_hw_update(struct b4
  	for (i = 0; i < 64; i++) {
  		tmp = b43legacy_nrssi_hw_read(dev, i);
@@ -430,8 +430,8 @@
  	pamp = b43legacy_get_txgain_freq_power_amp(txpower);
  	pamp <<= 5;
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c	2008-06-24 14:55:10.000000000 -0400
 @@ -199,7 +199,7 @@ static void lo_measure_txctl_values(stru
  		if (lb_gain > 10) {
  			radio_pctl_reg = 0;
@@ -451,9 +451,9 @@
  		if (phy->pga_gain >= 5) {
  			phy->pga_gain -= 5;
 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-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-05-27 14:51:25.000000000 -0400
-@@ -1182,10 +1182,10 @@ static void handle_irq_noise(struct b43_
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-06-24 14:55:10.000000000 -0400
+@@ -1187,10 +1187,10 @@ static void handle_irq_noise(struct b43_
  	/* Get the noise samples. */
  	B43_WARN_ON(dev->noisecalc.nr_samples >= 8);
  	i = dev->noisecalc.nr_samples;
@@ -468,7 +468,7 @@
  	dev->noisecalc.samples[i][0] = phy->nrssi_lt[noise[0]];
  	dev->noisecalc.samples[i][1] = phy->nrssi_lt[noise[1]];
  	dev->noisecalc.samples[i][2] = phy->nrssi_lt[noise[2]];
-@@ -2293,7 +2293,7 @@ static int b43_write_initvals(struct b43
+@@ -2331,7 +2331,7 @@ static int b43_write_initvals(struct b43
  				goto err_format;
  			array_size -= sizeof(iv->data.d32);
  
@@ -478,8 +478,8 @@
  
  			iv = (const struct b43_iv *)((const uint8_t *)iv +
 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-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c	2008-06-24 14:55:10.000000000 -0400
 @@ -1400,7 +1400,7 @@ static void b43_phy_initg(struct b43_wld
  		 * the value 0x7FFFFFFF here. I think that is some weird
  		 * compiler optimization in the original driver.
@@ -580,8 +580,8 @@
  			tmp_u16 = b43_phy_read(dev, 0x048A) & 0xF000;
  			tmp_u16 |= ((u32) b & 0x0000003F);
 diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c
---- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c	2008-06-24 14:55:10.000000000 -0400
 @@ -556,36 +556,40 @@ static void iwl3945_add_radiotap(struct 
  	iwl3945_rt->rt_hdr.it_pad = 0;
  
@@ -638,8 +638,8 @@
  
  	if (rate == -1)
 diff -up linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c.orig linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c
---- linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c	2008-06-24 14:55:10.000000000 -0400
 @@ -523,7 +523,7 @@ static int lbs_process_bss(struct bss_de
  
  	if (*bytesleft >= sizeof(beaconsize)) {
@@ -650,8 +650,8 @@
  		*pbeaconinfo += sizeof(beaconsize);
  	}
 diff -up linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c
---- linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2008-06-24 14:55:10.000000000 -0400
 @@ -556,11 +556,11 @@ static void handle_rx_packet(struct zd_u
  	 * be padded. Unaligned access might also happen if the length_info
  	 * structure is not present.
@@ -667,8 +667,8 @@
  				return;
  			n = l+k;
 diff -up linux-2.6.25.noarch/net/mac80211/iface.c.orig linux-2.6.25.noarch/net/mac80211/iface.c
---- linux-2.6.25.noarch/net/mac80211/iface.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/iface.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/iface.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/iface.c	2008-06-24 14:55:10.000000000 -0400
 @@ -53,15 +53,6 @@ int ieee80211_if_add(struct net_device *
  	if (!ndev)
  		return -ENOMEM;
@@ -686,8 +686,8 @@
  	if (ret < 0)
  		goto fail;
 diff -up linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c.orig linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c
---- linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c.orig	2008-05-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c	2008-06-24 14:55:10.000000000 -0400
 @@ -26,7 +26,7 @@ static inline u32 u32_field_get(u8 *preq
  {
  	if (ae)
@@ -698,8 +698,8 @@
  
  /* HWMP IE processing macros */
 diff -up linux-2.6.25.noarch/net/mac80211/michael.c.orig linux-2.6.25.noarch/net/mac80211/michael.c
---- linux-2.6.25.noarch/net/mac80211/michael.c.orig	2008-05-27 15:04:36.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/michael.c	2008-05-27 15:22:30.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/michael.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/michael.c	2008-06-24 14:55:10.000000000 -0400
 @@ -29,17 +29,16 @@ static void michael_block(struct michael
  static void michael_mic_hdr(struct michael_mic_ctx *mctx,
  			const u8 *key, const u8 *da, const u8 *sa, u8 priority)
@@ -750,8 +750,8 @@
 +	mic[7] = (mctx.r >> 24) & 0xff;
  }
 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 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/tkip.c	2008-05-27 15:23:42.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/tkip.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/tkip.c	2008-06-24 15:11:51.000000000 -0400
 @@ -7,22 +7,23 @@
   * published by the Free Software Foundation.
   */
@@ -782,7 +782,7 @@
  static const u16 tkip_sbox[256] =
  {
  	0xC6A5, 0xF884, 0xEE99, 0xF68D, 0xFF0D, 0xD6BD, 0xDEB1, 0x9154,
-@@ -59,13 +60,53 @@ static const u16 tkip_sbox[256] =
+@@ -59,11 +60,51 @@ static const u16 tkip_sbox[256] =
  	0x82C3, 0x29B0, 0x5A77, 0x1E11, 0x7BCB, 0xA8FC, 0x6DD6, 0x2C3A,
  };
  
@@ -807,10 +807,11 @@
 +
 +
 +static inline u16 Hi16(u32 v)
-+{
+ {
+-	return tkip_sbox[val & 0xff] ^ swab16(tkip_sbox[val >> 8]);
 +	return v >> 16;
-+}
-+
+ }
+ 
 +
 +static inline u16 Lo16(u32 v)
 +{
@@ -819,29 +820,24 @@
 +
 +
 +static inline u16 RotR1(u16 v)
- {
--	return tkip_sbox[val & 0xff] ^ swab16(tkip_sbox[val >> 8]);
++{
 +	return (v >> 1) | ((v & 0x0001) << 15);
- }
- 
--/*
-- * P1K := Phase1(TA, TK, TSC)
++}
++
 +
 +static inline u16 tkip_S(u16 val)
 +{
 +	u16 a = tkip_sbox[Hi8(val)];
-+
++ 
 +	return tkip_sbox[Lo8(val)] ^ Hi8(a) ^ (Lo8(a) << 8);
 +}
 +
 +
-+
-+/* P1K := Phase1(TA, TK, TSC)
-  * TA = transmitter address (48 bits)
-  * TK = dot11DefaultKeyValue or dot11KeyMappingValue (128 bits)
-  * TSC = TKIP sequence counter (48 bits, only 32 msb bits used)
-@@ -78,19 +119,19 @@ static void tkip_mixing_phase1(struct ie
- 	const u8 *tk = &key->conf.key[ALG_TKIP_TEMP_ENCR_KEY];
+ static u8 *write_tkip_iv(u8 *pos, u16 iv16)
+ {
+ 	*pos++ = iv16 >> 8;
+@@ -85,19 +126,19 @@ static void tkip_mixing_phase1(const u8 
+ 	int i, j;
  	u16 *p1k = ctx->p1k;
  
 -	p1k[0] = tsc_IV32 & 0xFFFF;
@@ -870,7 +866,7 @@
  	}
  	ctx->initialized = 1;
  }
-@@ -110,29 +151,31 @@ static void tkip_mixing_phase2(struct ie
+@@ -116,24 +157,26 @@ static void tkip_mixing_phase2(const u8 
  	ppk[4] = p1k[4];
  	ppk[5] = p1k[4] + tsc_IV16;
  
@@ -886,15 +882,6 @@
 -	ppk[3] += ror16(ppk[2], 1);
 -	ppk[4] += ror16(ppk[3], 1);
 -	ppk[5] += ror16(ppk[4], 1);
--
--	rc4key[0] = tsc_IV16 >> 8;
--	rc4key[1] = ((tsc_IV16 >> 8) | 0x20) & 0x7f;
--	rc4key[2] = tsc_IV16 & 0xFF;
--	rc4key[3] = ((ppk[5] ^ get_unaligned_le16(tk)) >> 1) & 0xFF;
--
--	rc4key += 4;
--	for (i = 0; i < 6; i++)
--		put_unaligned_le16(ppk[i], rc4key + 2 * i);
 +	ppk[0] += tkip_S(ppk[5] ^ Mk16(tk[ 1], tk[ 0]));
 +	ppk[1] += tkip_S(ppk[0] ^ Mk16(tk[ 3], tk[ 2]));
 +	ppk[2] += tkip_S(ppk[1] ^ Mk16(tk[ 5], tk[ 4]));
@@ -907,25 +894,23 @@
 +	ppk[3] +=  RotR1(ppk[2]);
 +	ppk[4] +=  RotR1(ppk[3]);
 +	ppk[5] +=  RotR1(ppk[4]);
-+
-+	rc4key[0] = Hi8(tsc_IV16);
-+	rc4key[1] = (Hi8(tsc_IV16) | 0x20) & 0x7f;
-+	rc4key[2] = Lo8(tsc_IV16);
-+	rc4key[3] = Lo8((ppk[5] ^ Mk16(tk[1], tk[0])) >> 1);
-+
+ 
+ 	rc4key = write_tkip_iv(rc4key, tsc_IV16);
+-	*rc4key++ = ((ppk[5] ^ get_unaligned_le16(tk)) >> 1) & 0xFF;
++	*rc4key++ = Lo8((ppk[5] ^ Mk16(tk[1], tk[0])) >> 1);
+ 
+-	for (i = 0; i < 6; i++)
+-		put_unaligned_le16(ppk[i], rc4key + 2 * i);
 +	for (i = 0; i < 6; i++) {
 +		rc4key[4 + 2 * i] = Lo8(ppk[i]);
 +		rc4key[5 + 2 * i] = Hi8(ppk[i]);
 +	}
  }
  
-+
  /* Add TKIP IV and Ext. IV at @pos. @iv0, @iv1, and @iv2 are the first octets
-  * of the IV. Returns pointer to the octet following IVs (i.e., beginning of
-  * the packet payload). */
 @@ -143,8 +186,11 @@ u8 *ieee80211_tkip_add_iv(u8 *pos, struc
- 	*pos++ = iv1;
- 	*pos++ = iv2;
+ {
+ 	pos = write_tkip_iv(pos, iv16);
  	*pos++ = (key->conf.keyidx << 6) | (1 << 5) /* Ext IV */;
 -	put_unaligned_le32(key->u.tkip.tx.iv32, pos);
 -	return pos + 4;
@@ -936,21 +921,18 @@
 +	return pos;
  }
  
- static void ieee80211_tkip_gen_rc4key(struct ieee80211_key *key, u8 *ta,
-@@ -171,8 +217,10 @@ void ieee80211_get_tkip_key(struct ieee8
- 	u16 iv16;
- 	u32 iv32;
- 
--	iv16 = data[hdr_len + 2] | (data[hdr_len] << 8);
--	iv32 = get_unaligned_le32(data + hdr_len + 4);
-+	iv16 = data[hdr_len] << 8;
-+	iv16 += data[hdr_len + 2];
-+	iv32 = data[hdr_len + 4] | (data[hdr_len + 5] << 8) |
-+	       (data[hdr_len + 6] << 16) | (data[hdr_len + 7] << 24);
+ void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf,
+@@ -162,7 +208,8 @@ void ieee80211_get_tkip_key(struct ieee8
  
- #ifdef CONFIG_TKIP_DEBUG
- 	printk(KERN_DEBUG "TKIP encrypt: iv16 = 0x%04x, iv32 = 0x%08x\n",
-@@ -217,6 +265,7 @@ void ieee80211_tkip_encrypt_data(struct 
+ 	data = (u8 *)hdr + ieee80211_hdrlen(hdr->frame_control);
+ 	iv16 = data[2] | (data[0] << 8);
+-	iv32 = get_unaligned_le32(&data[4]);
++	iv32 = data[4] | (data[5] << 8) |
++		(data[6] << 16) | (data[7] << 24);
+ 
+ 	tk = &key->conf.key[ALG_TKIP_TEMP_ENCR_KEY];
+ 	ctx = &key->u.tkip.tx;
+@@ -217,6 +264,7 @@ void ieee80211_tkip_encrypt_data(struct 
  	ieee80211_wep_encrypt_data(tfm, rc4key, 16, pos, payload_len);
  }
  
@@ -958,7 +940,7 @@
  /* Decrypt packet payload with TKIP using @key. @pos is a pointer to the
   * beginning of the buffer containing IEEE 802.11 header payload, i.e.,
   * including IV, Ext. IV, real data, Michael MIC, ICV. @payload_len is the
-@@ -237,7 +286,7 @@ int ieee80211_tkip_decrypt_data(struct c
+@@ -238,7 +286,7 @@ int ieee80211_tkip_decrypt_data(struct c
  
  	iv16 = (pos[0] << 8) | pos[2];
  	keyid = pos[3];
@@ -967,15 +949,15 @@
  	pos += 8;
  #ifdef CONFIG_TKIP_DEBUG
  	{
-@@ -340,3 +389,5 @@ int ieee80211_tkip_decrypt_data(struct c
+@@ -341,3 +389,5 @@ int ieee80211_tkip_decrypt_data(struct c
  
  	return res;
  }
 +
 +
 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 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c	2008-06-24 14:55:10.000000000 -0400
 @@ -167,13 +167,13 @@ int cfg80211_dev_rename(struct cfg80211_
  
  	/* Ignore nop renames */
@@ -993,8 +975,8 @@
  	}
  
 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 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/radiotap.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-06-24 14:55:10.000000000 -0400
 @@ -59,21 +59,23 @@ int ieee80211_radiotap_iterator_init(
  		return -EINVAL;
  
@@ -1036,8 +1018,8 @@
  			} else
  				/* no more bitmaps: end */
 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-27 14:51:17.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/wext.c	2008-05-27 14:51:25.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig	2008-06-24 14:54:25.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c	2008-06-24 14:55:10.000000000 -0400
 @@ -1157,7 +1157,7 @@ static void rtmsg_iwinfo(struct net_devi
  	struct sk_buff *skb;
  	int err;

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-8/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	14 Jun 2008 00:12:32 -0000	1.48
+++ linux-2.6-wireless-pending.patch	26 Jun 2008 19:29:52 -0000	1.49
@@ -1,3 +1,1111 @@
+commit 87291c0269e77b029282676448fed3706a54211a
+Author: Vladimir Koutny <vlado at work.ksp.sk>
+Date:   Fri Jun 13 16:50:44 2008 +0200
+
+    mac80211: eliminate IBSS warning in rate_lowest_index()
+    
+    In IBSS mode prior to join/creation of new IBSS it is possible that
+    a frame from unknown station is received and an ibss_add_sta() is
+    called. This will cause a warning in rate_lowest_index() since the
+    list of supported rates of our station is not initialized yet.
+    
+    The fix is to add ibss stations with a rate we received that frame
+    at; this single-element set will be extended later based on beacon
+    data. Also there is no need to store stations from a foreign IBSS.
+    
+    Signed-off-by: Vladimir Koutny <vlado at ksp.sk>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c644bce95f287e763a0b49e5d03f0fe6256f6d2e
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:22:02 2008 -0700
+
+    mac80211: tkip.c use a local struct tkip_ctx in ieee80211_get_tkip_key
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 7c70537f97fe35f46762247a4bda72c16d585736
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:22:00 2008 -0700
+
+    mac80211: tkip.c fold ieee80211_gen_rc4key into its one caller
+    
+    Also change the arguments of the phase1, 2 key mixing to take
+    a pointer to the encrytion key and the tkip_ctx in the same
+    order.
+    
+    Do the dereference of the encryption key in the callers.
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c801242c38de247d82f12f6bf28bd19a280a12ae
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:22:00 2008 -0700
+
+    mac80211: tkip.c consolidate tkip IV writing in helper
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 87228f57434108d8463ff10fd408d8d1273a23d2
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:59 2008 -0700
+
+    mac80211: rx.c use new helpers
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 002aaf4ea6be3247c246d274979359c3bc93c82a
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:59 2008 -0700
+
+    mac80211: wme.c use new helpers
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a494bb1cae40dd0a98682826d91ddf533cbc864e
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:58 2008 -0700
+
+    mac80211: use new helpers in util.c - ieee80211_get_bssid()
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d5184cacf3eeaeb6ae0c7a02aa44fe589beeda23
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:58 2008 -0700
+
+    mac80211: wpa.c use new access helpers
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6693be7124cb8e4f15f0d80ed6e3e50678771737
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:57 2008 -0700
+
+    mac80211: add utility function to get header length
+    
+    Take a __le16 directly rather than a host-endian value.
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c9c6950c14ffc0e30e592fec1ebcb203ad3dff10
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:57 2008 -0700
+
+    mac80211: make ieee80211_get_hdrlen_from_skb return unsigned
+    
+    Many callers already expect it to.
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8b7b1e05b0454f232b8ae1e6ee134b7f0b38abfb
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:56 2008 -0700
+
+    mac80211: remove ieee80211_get_morefrag
+    
+    Replaced by the new helper ieee80211_has_morefrags which is
+    more consistent with the intent of the function.
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit fd7c8a40b2a63863f749e4d17f0d94d2e5ab1331
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jun 11 14:21:56 2008 -0700
+
+    mac80211: add helpers for frame control testing
+    
+    A few general categories:
+    
+    1) ieee80211_has_* tests if particular fctl bits are set, the helpers are de
+    in the same order as the fctl defines:
+    
+    A combined _has_a4 was also added to test when both FROMDS and TODS are set.
+    
+    2) ieee80211_is_* is meant to test whether the frame control is of a certain
+    ftype - data, mgmt, ctl, and two special helpers _is_data_qos, _is_data_pres
+    which also test a subset of the stype space.
+    
+    When testing for a particular stype applicable only to one ftype, functions
+    like ieee80211_is_ack have been added.  Note that the ftype is also being
+    checked in these helpers.  They have been added for all mgmt and ctl stypes
+    in the same order as the STYPE defines.
+    
+    3) ieee80211_get_* is meant to take a struct ieee80211_hdr * and returns a
+    pointer to somewhere in the struct, see get_SA, get_DA, get_qos_ctl.
+    
+    The intel wireless drivers had helpers that used this namespace, convert the
+    all to use the new helpers and remove the byteshifting as they were defined
+    in cpu-order rather than little-endian.
+    
+    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e36cfdc9b17fa64245ee6206287e5120e59bbfca
+Author: Jouni Malinen <j at w1.fi>
+Date:   Fri Jun 13 19:44:48 2008 +0300
+
+    mac80211_hwsim: Shared TX code for received frames and Beacons
+    
+    Use a shared function for transmitting the frames instead of
+    duplicated code in two places.
+    
+    Signed-off-by: Jouni Malinen <j at w1.fi>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f248f10515dc7279120adf2d3eabcac9561fb1b4
+Author: Jouni Malinen <j at w1.fi>
+Date:   Fri Jun 13 19:44:47 2008 +0300
+
+    mac80211_hwsim: Minor cleanup
+    
+    Remove unnecessary '__constant_' prefix and use the atomic version of
+    ieee80211_iterate_active_interfaces().
+    
+    Signed-off-by: Jouni Malinen <j at w1.fi>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ba77f1abde3999e45d92c0ba4e0356f7498e959f
+Author: Jouni Malinen <j at w1.fi>
+Date:   Fri Jun 13 19:44:46 2008 +0300
+
+    mac80211_hwsim: Clean up documentation
+    
+    Clean up the introduction and fix a typo.
+    
+    Signed-off-by: Jouni Malinen <j at w1.fi>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit acc1e7a3007ec1940374206a84465c1e0cfcda09
+Author: Jouni Malinen <j at w1.fi>
+Date:   Wed Jun 11 10:42:31 2008 +0300
[...22769 lines suppressed...]
+-			pos += 6;
+-		*qos_tid = pos[0] & 0x0f;
+-		*qos_tid |= 0x80; /* qos_included flag */
+-	} else
++	if (ieee80211_is_data_qos(fc))
++		*qos_tid = (*ieee80211_get_qos_ctl(hdr) & 0x0f) | 0x80;
++	else
+ 		*qos_tid = 0;
+ 
+ 	return skb->len < hdrlen ? -1 : 0;
+@@ -79,6 +55,7 @@ ieee80211_tx_h_michael_mic_add(struct ie
  	struct sk_buff *skb = tx->skb;
  	int authenticator;
  	int wpa_test = 0;
@@ -54055,7 +61538,7 @@
  
  	fc = tx->fc;
  
-@@ -98,16 +99,13 @@ ieee80211_tx_h_michael_mic_add(struct ie
+@@ -98,16 +75,13 @@ ieee80211_tx_h_michael_mic_add(struct ie
  		return TX_CONTINUE;
  	}
  
@@ -54079,7 +61562,7 @@
  
  #if 0
  	authenticator = fc & IEEE80211_FCTL_FROMDS; /* FIX */
-@@ -176,59 +174,65 @@ ieee80211_rx_h_michael_mic_verify(struct
+@@ -176,59 +150,58 @@ ieee80211_rx_h_michael_mic_verify(struct
  	skb_trim(skb, skb->len - MICHAEL_MIC_LEN);
  
  	/* update IV in key information to be able to detect replays */
@@ -54099,11 +61582,14 @@
  	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
  	struct ieee80211_key *key = tx->key;
 -	int hdrlen, len, tailneed;
+-	u16 fc;
 +	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
-+	int hdrlen, len, tail;
- 	u16 fc;
++	unsigned int hdrlen;
++	int len, tail;
  	u8 *pos;
  
+-	fc = le16_to_cpu(hdr->frame_control);
+-	hdrlen = ieee80211_get_hdrlen(fc);
 +	info->control.icv_len = TKIP_ICV_LEN;
 +	info->control.iv_len = TKIP_IV_LEN;
 +
@@ -54114,8 +61600,7 @@
 +		return 0;
 +	}
 +
- 	fc = le16_to_cpu(hdr->frame_control);
- 	hdrlen = ieee80211_get_hdrlen(fc);
++	hdrlen = ieee80211_hdrlen(hdr->frame_control);
  	len = skb->len - hdrlen;
  
  	if (tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)
@@ -54149,24 +61634,22 @@
 +		key->u.tkip.tx.iv32++;
  
  	if (tx->key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
- 		hdr = (struct ieee80211_hdr *)skb->data;
- 
+-		hdr = (struct ieee80211_hdr *)skb->data;
+-
  		/* hwaccel - with preallocated room for IV */
- 		ieee80211_tkip_add_iv(pos, key,
+-		ieee80211_tkip_add_iv(pos, key,
 -				      (u8) (key->u.tkip.iv16 >> 8),
 -				      (u8) (((key->u.tkip.iv16 >> 8) | 0x20) &
-+				      (u8) (key->u.tkip.tx.iv16 >> 8),
-+				      (u8) (((key->u.tkip.tx.iv16 >> 8) | 0x20) &
- 					    0x7f),
+-					    0x7f),
 -				      (u8) key->u.tkip.iv16);
-+				      (u8) key->u.tkip.tx.iv16);
++		ieee80211_tkip_add_iv(pos, key, key->u.tkip.tx.iv16);
  
 -		tx->control->key_idx = tx->key->conf.hw_key_idx;
 +		info->control.hw_key = &tx->key->conf;
  		return 0;
  	}
  
-@@ -246,28 +250,16 @@ ieee80211_tx_result
+@@ -246,28 +219,16 @@ ieee80211_tx_result
  ieee80211_crypto_tkip_encrypt(struct ieee80211_tx_data *tx)
  {
  	struct sk_buff *skb = tx->skb;
@@ -54197,7 +61680,23 @@
  				return TX_DROP;
  		}
  	}
-@@ -429,16 +421,27 @@ static inline int ccmp_hdr2pn(u8 *pn, u8
+@@ -280,14 +241,12 @@ ieee80211_rx_result
+ ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx)
+ {
+ 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
+-	u16 fc;
+ 	int hdrlen, res, hwaccel = 0, wpa_test = 0;
+ 	struct ieee80211_key *key = rx->key;
+ 	struct sk_buff *skb = rx->skb;
+ 	DECLARE_MAC_BUF(mac);
+ 
+-	fc = le16_to_cpu(hdr->frame_control);
+-	hdrlen = ieee80211_get_hdrlen(fc);
++	hdrlen = ieee80211_hdrlen(hdr->frame_control);
+ 
+ 	if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
+ 		return RX_CONTINUE;
+@@ -429,36 +388,41 @@ static inline int ccmp_hdr2pn(u8 *pn, u8
  }
  
  
@@ -54208,9 +61707,9 @@
  	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
  	struct ieee80211_key *key = tx->key;
 -	int hdrlen, len, tailneed;
+-	u16 fc;
 +	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
 +	int hdrlen, len, tail;
- 	u16 fc;
  	u8 *pos, *pn, *b_0, *aad, *scratch;
  	int i;
  
@@ -54228,7 +61727,10 @@
  	scratch = key->u.ccmp.tx_crypto_buf;
  	b_0 = scratch + 3 * AES_BLOCK_LEN;
  	aad = scratch + 4 * AES_BLOCK_LEN;
-@@ -448,17 +451,13 @@ static int ccmp_encrypt_skb(struct ieee8
+ 
+-	fc = le16_to_cpu(hdr->frame_control);
+-	hdrlen = ieee80211_get_hdrlen(fc);
++	hdrlen = ieee80211_hdrlen(hdr->frame_control);
  	len = skb->len - hdrlen;
  
  	if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE)
@@ -54251,7 +61753,7 @@
  
  	pos = skb_push(skb, CCMP_HDR_LEN);
  	memmove(pos, pos + CCMP_HDR_LEN, hdrlen);
-@@ -478,7 +477,7 @@ static int ccmp_encrypt_skb(struct ieee8
+@@ -478,7 +442,7 @@ static int ccmp_encrypt_skb(struct ieee8
  
  	if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
  		/* hwaccel - with preallocated room for CCMP header */
@@ -54260,7 +61762,7 @@
  		return 0;
  	}
  
-@@ -495,28 +494,16 @@ ieee80211_tx_result
+@@ -495,28 +459,16 @@ ieee80211_tx_result
  ieee80211_crypto_ccmp_encrypt(struct ieee80211_tx_data *tx)
  {
  	struct sk_buff *skb = tx->skb;
@@ -54291,9 +61793,27 @@
  				return TX_DROP;
  		}
  	}
+@@ -529,7 +481,6 @@ ieee80211_rx_result
+ ieee80211_crypto_ccmp_decrypt(struct ieee80211_rx_data *rx)
+ {
+ 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
+-	u16 fc;
+ 	int hdrlen;
+ 	struct ieee80211_key *key = rx->key;
+ 	struct sk_buff *skb = rx->skb;
+@@ -537,8 +488,7 @@ ieee80211_crypto_ccmp_decrypt(struct iee
+ 	int data_len;
+ 	DECLARE_MAC_BUF(mac);
+ 
+-	fc = le16_to_cpu(hdr->frame_control);
+-	hdrlen = ieee80211_get_hdrlen(fc);
++	hdrlen = ieee80211_hdrlen(hdr->frame_control);
+ 
+ 	if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
+ 		return RX_CONTINUE;
 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-06-13 19:33:09.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.c	2008-06-13 19:44:37.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-06-25 14:44:53.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c	2008-06-25 14:45:47.000000000 -0400
 @@ -143,8 +143,11 @@ void cfg80211_put_dev(struct cfg80211_re
  int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
  			char *newname)
@@ -54358,7 +61878,7 @@
  /* 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-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-06-13 19:44:37.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-06-25 14:45:47.000000000 -0400
 @@ -59,23 +59,21 @@ int ieee80211_radiotap_iterator_init(
  		return -EINVAL;
  
@@ -54399,3 +61919,4 @@
  				iterator->next_bitmap++;
  			} else
  				/* no more bitmaps: end */
+diff -up linux-2.6.25.noarch/net/wireless/reg.c.orig linux-2.6.25.noarch/net/wireless/reg.c

linux-2.6-wireless.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.42 -r 1.43 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-wireless.patch,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- linux-2.6-wireless.patch	14 Jun 2008 00:12:32 -0000	1.42
+++ linux-2.6-wireless.patch	26 Jun 2008 19:29:52 -0000	1.43
@@ -1,3 +1,121 @@
+commit 66b5004d85164a6439d3ba1e7757734472ee2cac
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
+Date:   Wed Jun 25 16:46:31 2008 +0800
+
+    iwlwifi: improve scanning band selection management
+    
+    This patch modifies the band selection management when scanning, so
+    bands are now scanned according to HW band support.
+    
+    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 99ade2597e3f7f0ad463c489aaccd6cc605e242c
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Fri Jun 20 22:11:00 2008 +0200
+
+    rt2x00: Fix unbalanced mutex locking
+    
+    The usb_cache_mutex was not correctly released
+    under all circumstances. Both rt73usb as rt2500usb
+    didn't release the mutex under certain conditions
+    when the register access failed. Obviously such
+    failure would lead to deadlocks.
+    
+    In addition under similar circumstances when the
+    bbp register couldn't be read the value must be
+    set to 0xff to indicate that the value is wrong.
+    This too didn't happen under all circumstances.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 2f9ec47d0954f9d2e5a00209c2689cbc477a8c89
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Fri Jun 20 11:40:46 2008 +0200
+
+    b43legacy: Fix possible NULL pointer dereference in DMA code
+    
+    This fixes a possible NULL pointer dereference in an error path of the
+    DMA allocation error checking code. This is also necessary for a future
+    DMA API change that is on its way into the mainline kernel that adds
+    an additional dev parameter to dma_mapping_error().
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Cc: stable <stable at kernel.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 7b3abfc87ec13a81b255012b6e1bd4caeeb05aec
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sun Jun 15 16:01:24 2008 +0200
+
+    b43: Fix possible MMIO access while device is down
+    
+    This fixes a possible MMIO access while the device is still down
+    from a suspend cycle. MMIO accesses with the device powered down
+    may cause crashes on certain devices.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 664f200610a3c9641ff58fc91b986b804cb1cc2d
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sun Jun 15 15:27:49 2008 +0200
+
+    b43legacy: Do not return TX_BUSY from op_tx
+    
+    Never return TX_BUSY from op_tx. It doesn't make sense to return
+    TX_BUSY, if we can not transmit the packet.
+    Drop the packet and return TX_OK.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c9e8eae0935f03e2d03a7ad7af80d8fc6c53e68c
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sun Jun 15 15:17:29 2008 +0200
+
+    b43: Do not return TX_BUSY from op_tx
+    
+    Never return TX_BUSY from op_tx. It doesn't make sense to return
+    TX_BUSY, if we can not transmit the packet.
+    Drop the packet and return TX_OK.
+    This will fix the resume hang.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 59d393ad92f719d9ef36b96eae56d4817a7eeb10
+Author: Tony Vroon <tony at linx.net>
+Date:   Wed Jun 11 16:23:56 2008 -0400
+
+    mac80211: implement EU regulatory domain
+    
+    Implement missing EU regulatory domain for mac80211. Based on the
+    information in IEEE 802.11-2007 (specifically pages 1142, 1143 & 1148)
+    and ETSI 301 893 (V1.4.1).
+    With thanks to Johannes Berg.
+    
+    Signed-off-by: Tony Vroon <tony at linx.net>
+    Acked-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ef3a62d272f033989e83eb1f26505f93f93e3e69
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Wed Jun 18 15:39:48 2008 -0700
+
+    mac80211: detect driver tx bugs
+    
+    When a driver rejects a frame in it's ->tx() callback, it must also
+    stop queues, otherwise mac80211 can go into a loop here. Detect this
+    situation and abort the loop after five retries, warning about the
+    driver bug.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: David S. Miller <davem at davemloft.net>
+
 commit cb62eccd7d946f7fb92b8beb79988726ec92c227
 Author: Ivo van Doorn <ivdoorn at gmail.com>
 Date:   Thu Jun 12 20:47:17 2008 +0200
@@ -9010,8 +9128,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-06-13 17:47:27.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.c	2008-06-13 17:47:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/adm8211.c.orig	2008-06-25 14:35:03.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.c	2008-06-25 14:35:20.000000000 -0400
 @@ -48,6 +48,32 @@ static struct pci_device_id adm8211_pci_
  	{ 0 }
  };
@@ -9209,8 +9327,8 @@
  	err = ieee80211_register_hw(dev);
  	if (err) {
 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-06-13 17:47:27.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.h	2008-06-13 17:47:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/adm8211.h.orig	2008-06-25 14:35:03.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/adm8211.h	2008-06-25 14:35:20.000000000 -0400
 @@ -534,61 +534,6 @@ struct adm8211_eeprom {
  	u8	cis_data[0];		/* 0x80, 384 bytes */
  } __attribute__ ((packed));
@@ -9298,8 +9416,8 @@
  	{1,  11},	/* FCC */
  	{1,  11},	/* IC */
 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-06-13 17:47:27.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-06-13 17:47:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig	2008-06-25 14:35:03.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-06-25 14:35:20.000000000 -0400
 @@ -2668,6 +2668,7 @@ static struct net_device *init_wifidev(s
  	dev->irq = ethdev->irq;
  	dev->base_addr = ethdev->base_addr;
@@ -9554,8 +9672,8 @@
  
  /*
 diff -up linux-2.6.25.noarch/drivers/net/wireless/ath5k/ath5k.h.orig linux-2.6.25.noarch/drivers/net/wireless/ath5k/ath5k.h
---- linux-2.6.25.noarch/drivers/net/wireless/ath5k/ath5k.h.orig	2008-06-13 17:47:27.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/ath5k.h	2008-06-13 17:47:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/ath5k.h.orig	2008-06-25 14:35:03.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/ath5k.h	2008-06-25 14:35:20.000000000 -0400
 @@ -30,7 +30,6 @@
  #include <net/mac80211.h>
  
@@ -9905,8 +10023,8 @@
  extern int ath5k_hw_get_capability(struct ath5k_hw *ah, enum ath5k_capability_type cap_type, u32 capability, u32 *result);
  
 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-06-13 17:47:27.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-06-13 17:47:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-06-25 14:35:03.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-06-25 14:35:20.000000000 -0400
 @@ -58,10 +58,6 @@
  #include "reg.h"
  #include "debug.h"
@@ -10960,8 +11078,8 @@
  	memcpy(stats, &sc->ll_stats, sizeof(sc->ll_stats));
  
 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-06-13 17:47:27.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h	2008-06-13 17:47:52.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-06-25 14:35:03.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.h	2008-06-25 14:35:20.000000000 -0400
 @@ -83,7 +83,7 @@ struct ath5k_txq {
  #if CHAN_DEBUG
  #define ATH_CHAN_MAX	(26+26+26+200+200)
@@ -11007,8 +11125,8 @@
  
  #define ath5k_hw_hasbssidmask(_ah) \
 diff -up linux-2.6.25.noarch/drivers/net/wireless/ath5k/debug.c.orig linux-2.6.25.noarch/drivers/net/wireless/ath5k/debug.c
[...7839 lines suppressed...]
  	sta = tx.sta;
@@ -126495,8 +126912,8 @@
  	return skb;
  }
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/util.c	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/util.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/util.c	2008-06-25 14:35:21.000000000 -0400
 @@ -25,7 +25,8 @@
  #include <net/rtnetlink.h>
  
@@ -126815,8 +127232,8 @@
 -EXPORT_SYMBOL_GPL(ieee80211_iterate_active_interfaces);
 +EXPORT_SYMBOL_GPL(ieee80211_iterate_active_interfaces_atomic);
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wep.c	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wep.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wep.c	2008-06-25 14:35:21.000000000 -0400
 @@ -305,39 +305,39 @@ u8 * ieee80211_wep_is_weak_iv(struct sk_
  	return NULL;
  }
@@ -126907,8 +127324,8 @@
 +	return TX_CONTINUE;
  }
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wep.h	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wep.h.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wep.h	2008-06-25 14:35:21.000000000 -0400
 @@ -14,7 +14,7 @@
  #include <linux/skbuff.h>
  #include <linux/types.h>
@@ -126933,8 +127350,8 @@
  
  #endif /* WEP_H */
 diff -up /dev/null linux-2.6.25.noarch/net/mac80211/wext.c
---- /dev/null	2008-06-13 08:28:06.437004730 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wext.c	2008-06-13 17:58:44.000000000 -0400
+--- /dev/null	2008-06-25 08:17:03.992002591 -0400
++++ linux-2.6.25.noarch/net/mac80211/wext.c	2008-06-25 14:35:21.000000000 -0400
 @@ -0,0 +1,1164 @@
 +/*
 + * Copyright 2002-2005, Instant802 Networks, Inc.
@@ -128101,8 +128518,8 @@
 +	.get_wireless_stats = ieee80211_get_wireless_stats,
 +};
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wme.c	2008-06-13 17:58:44.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wme.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wme.c	2008-06-25 14:35:21.000000000 -0400
 @@ -19,10 +19,13 @@
  #include "wme.h"
  
@@ -128312,8 +128729,8 @@
 +	}
 +}
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wme.h	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wme.h.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wme.h	2008-06-25 14:35:21.000000000 -0400
 @@ -24,6 +24,8 @@
  
  #define QOS_CONTROL_TAG1D_MASK 0x07
@@ -128359,8 +128776,8 @@
  {
  	return 0;
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wpa.c	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wpa.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wpa.c	2008-06-25 14:35:21.000000000 -0400
 @@ -70,8 +70,8 @@ static int ieee80211_get_hdr_info(const 
  }
  
@@ -128740,8 +129157,8 @@
 +	return RX_CONTINUE;
  }
 diff -up linux-2.6.25.noarch/net/mac80211/wpa.h.orig linux-2.6.25.noarch/net/mac80211/wpa.h
---- linux-2.6.25.noarch/net/mac80211/wpa.h.orig	2008-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wpa.h	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wpa.h.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wpa.h	2008-06-25 14:35:21.000000000 -0400
 @@ -13,19 +13,19 @@
  #include <linux/types.h>
  #include "ieee80211_i.h"
@@ -128775,8 +129192,8 @@
  
  #endif /* WPA_H */
 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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.c	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c	2008-06-25 14:35:21.000000000 -0400
 @@ -232,6 +232,47 @@ int wiphy_register(struct wiphy *wiphy)
  {
  	struct cfg80211_registered_device *drv = wiphy_to_dev(wiphy);
@@ -128826,8 +129243,8 @@
  	mutex_lock(&cfg80211_drv_mutex);
  
 diff -up linux-2.6.25.noarch/net/wireless/core.h.orig linux-2.6.25.noarch/net/wireless/core.h
---- linux-2.6.25.noarch/net/wireless/core.h.orig	2008-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.h	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.h.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.h	2008-06-25 14:35:21.000000000 -0400
 @@ -78,4 +78,7 @@ extern void cfg80211_dev_free(struct cfg
  extern int cfg80211_dev_rename(struct cfg80211_registered_device *drv,
  			       char *newname);
@@ -128837,8 +129254,8 @@
 +
  #endif /* __NET_WIRELESS_CORE_H */
 diff -up linux-2.6.25.noarch/net/wireless/Makefile.orig linux-2.6.25.noarch/net/wireless/Makefile
---- linux-2.6.25.noarch/net/wireless/Makefile.orig	2008-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/Makefile	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/Makefile.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/Makefile	2008-06-25 14:35:21.000000000 -0400
 @@ -1,5 +1,5 @@
  obj-$(CONFIG_WIRELESS_EXT) += wext.o
  obj-$(CONFIG_CFG80211) += cfg80211.o
@@ -128847,8 +129264,8 @@
 +cfg80211-y += core.o sysfs.o radiotap.o util.o reg.o
  cfg80211-$(CONFIG_NL80211) += nl80211.o
 diff -up linux-2.6.25.noarch/net/wireless/nl80211.c.orig linux-2.6.25.noarch/net/wireless/nl80211.c
---- linux-2.6.25.noarch/net/wireless/nl80211.c.orig	2008-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/nl80211.c	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/nl80211.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/nl80211.c	2008-06-25 14:35:21.000000000 -0400
 @@ -81,7 +81,12 @@ static struct nla_policy nl80211_policy[
  	[NL80211_ATTR_STA_LISTEN_INTERVAL] = { .type = NLA_U16 },
  	[NL80211_ATTR_STA_SUPPORTED_RATES] = { .type = NLA_BINARY,
@@ -129539,9 +129956,9 @@
  
  /* multicast groups */
 diff -up /dev/null linux-2.6.25.noarch/net/wireless/reg.c
---- /dev/null	2008-06-13 08:28:06.437004730 -0400
-+++ linux-2.6.25.noarch/net/wireless/reg.c	2008-06-13 17:47:53.000000000 -0400
-@@ -0,0 +1,162 @@
+--- /dev/null	2008-06-25 08:17:03.992002591 -0400
++++ linux-2.6.25.noarch/net/wireless/reg.c	2008-06-25 14:35:54.000000000 -0400
+@@ -0,0 +1,180 @@
 +/*
 + * Copyright 2002-2005, Instant802 Networks, Inc.
 + * Copyright 2005-2006, Devicescape Software, Inc.
@@ -129624,6 +130041,23 @@
 +				     IEEE80211_CHAN_RADAR),
 +};
 +
++static const struct ieee80211_channel_range ieee80211_EU_channels[] = {
++	/* IEEE 802.11b/g, channels 1..13 */
++	RANGE_PWR(2412, 2472, 20, 6, 0),
++	/* IEEE 802.11a, channel 36*/
++	RANGE_PWR(5180, 5180, 23, 6, IEEE80211_CHAN_PASSIVE_SCAN),
++	/* IEEE 802.11a, channel 40*/
++	RANGE_PWR(5200, 5200, 23, 6, IEEE80211_CHAN_PASSIVE_SCAN),
++	/* IEEE 802.11a, channel 44*/
++	RANGE_PWR(5220, 5220, 23, 6, IEEE80211_CHAN_PASSIVE_SCAN),
++	/* IEEE 802.11a, channels 48..64 */
++	RANGE_PWR(5240, 5320, 23, 6, IEEE80211_CHAN_NO_IBSS |
++				     IEEE80211_CHAN_RADAR),
++	/* IEEE 802.11a, channels 100..140 */
++	RANGE_PWR(5500, 5700, 30, 6, IEEE80211_CHAN_NO_IBSS |
++				     IEEE80211_CHAN_RADAR),
++};
++
 +#define REGDOM(_code)							\
 +	{								\
 +		.code = __stringify(_code),				\
@@ -129634,6 +130068,7 @@
 +static const struct ieee80211_regdomain ieee80211_regdoms[] = {
 +	REGDOM(US),
 +	REGDOM(JP),
++	REGDOM(EU),
 +};
 +
 +
@@ -129705,8 +130140,8 @@
 +			handle_band(wiphy->bands[band], rd);
 +}
 diff -up /dev/null linux-2.6.25.noarch/net/wireless/util.c
---- /dev/null	2008-06-13 08:28:06.437004730 -0400
-+++ linux-2.6.25.noarch/net/wireless/util.c	2008-06-13 17:47:53.000000000 -0400
+--- /dev/null	2008-06-25 08:17:03.992002591 -0400
++++ linux-2.6.25.noarch/net/wireless/util.c	2008-06-25 14:35:21.000000000 -0400
 @@ -0,0 +1,121 @@
 +/*
 + * Wireless utility functions
@@ -129830,8 +130265,8 @@
 +			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-06-13 17:47:28.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/wext.c	2008-06-13 17:47:53.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig	2008-06-25 14:35:04.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c	2008-06-25 14:35:21.000000000 -0400
 @@ -1157,7 +1157,7 @@ static void rtmsg_iwinfo(struct net_devi
  	struct sk_buff *skb;
  	int err;




More information about the fedora-extras-commits mailing list