rpms/kernel/devel config-generic, 1.118, 1.119 kernel.spec, 1.725, 1.726 linux-2.6-wireless-pending.patch, 1.57, 1.58 linux-2.6-wireless.patch, 1.43, 1.44

John W. Linville (linville) fedora-extras-commits at redhat.com
Tue Jul 1 15:30:44 UTC 2008


Author: linville

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

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


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.118
retrieving revision 1.119
diff -u -r1.118 -r1.119
--- config-generic	30 Jun 2008 19:52:09 -0000	1.118
+++ config-generic	1 Jul 2008 15:29:57 -0000	1.119
@@ -1268,7 +1268,7 @@
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 CONFIG_MAC80211_DEBUGFS=y
-# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
 # CONFIG_MAC80211_DEBUG is not set
 CONFIG_IEEE80211=m
 CONFIG_IEEE80211_DEBUG=y


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.725
retrieving revision 1.726
diff -u -r1.725 -r1.726
--- kernel.spec	1 Jul 2008 12:54:38 -0000	1.725
+++ kernel.spec	1 Jul 2008 15:29:57 -0000	1.726
@@ -1788,6 +1788,12 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL}.xen -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.xen.conf %{with_xen} xen
 
 %changelog
+* Tue Jul 01 2008 John W. Linville <linville at redhat.com>
+- Upstream wireless fixes from 2008-06-30
+  (http://marc.info/?l=linux-wireless&m=121485709702728&w=2)
+- Upstream wireless updates from 2008-06-30
+  (http://marc.info/?l=linux-wireless&m=121486432315033&w=2)
+
 * Tue Jul 01 2008 Dave Jones <davej at redhat.com>
 - 2.6.26-rc8-git2
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.57 -r 1.58 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- linux-2.6-wireless-pending.patch	27 Jun 2008 18:12:26 -0000	1.57
+++ linux-2.6-wireless-pending.patch	1 Jul 2008 15:29:57 -0000	1.58
@@ -1,3 +1,721 @@
+commit edbf873cb3e8c4ef71123e83b07f39ab69971910
+Author: Larry.Finger at lwfinger.net <Larry.Finger at lwfinger.net>
+Date:   Mon Jun 30 10:39:49 2008 -0500
+
+    p54: Add quality output to iwlist and iwconfig
+    
+    The p54 driver family reports a quality of 0 in iwconfig and iwlist
+    output. This patch calculates a quality number as a percentage of the
+    rssi to the maximum signal of 127 reported as the maximum signal.
+    
+    Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 22191a580c725ed5f285d0084bfa1d2f8b350a47
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Jun 30 15:10:46 2008 +0200
+
+    mac80211: rework debug settings and make debugging safer
+    
+    This patch reworks the mac80211 debug settings making them more focused
+    and adding help text for those that didn't have one. It also removes a
+    number of printks that can be triggered remotely and add no value, e.g.
+    "too short deauthentication frame received - ignoring".
+    
+    If somebody really needs to debug that they should just add a monitor
+    interface and look at the frames in wireshark.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 3f1664e47dcd98b982f34dc39735f2b6706ad7ff
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Jun 30 15:10:45 2008 +0200
+
+    mac80211: get rid of function pointers in RX path
+    
+    This changes the RX path to no longer use function pointers for
+    RX handlers but rather invoke them directly. If debugging is
+    enabled, mark the RX handlers noinline because otherwise they
+    all get inlined into ieee80211_invoke_rx_handlers() which makes
+    it harder to see where a bug is.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 5807822f3d52179ec0a9091892e88dc4d4d3323b
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Jun 30 15:10:44 2008 +0200
+
+    mac80211: get rid of function pointers in TX path
+    
+    This changes the TX path to no longer use function pointers for
+    TX handlers but rather invoke them directly. If debugging is
+    enabled, mark the TX handlers noinline because otherwise they
+    all get inlined into invoke_tx_handlers() which makes it harder
+    to see where a bug is.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 444b6135791874d8e78ff47daab86d1b8ee4784f
+Author: Zhu Yi <yi.zhu at intel.com>
+Date:   Mon Jun 30 17:23:32 2008 +0800
+
+    iwl3945: remove RFKILL_STATE_HARD_BLOCKED warnings
+    
+    The patch fixes the compile warning of "enumeration value
+    ‘RFKILL_STATE_HARD_BLOCKED’ not handled in switch".
+    
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit bd1092ceadee190604d8ff59faa97a974c3c1ecb
+Author: Zhu Yi <yi.zhu at intel.com>
+Date:   Mon Jun 30 17:23:31 2008 +0800
+
+    iwlwifi: fix iwl4965 temperature callback calibration issue
+    
+    The patch fixes the temperature calibration issue introduced by the
+    patch "iwlwifi: move RX stats to core, and move temperature to handler".
+    It also remove the second parameter "stats" since it is already copied
+    to priv->statistics.
+    
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 82c2e0895d1fa87c3206e3fe5f99dd51e2cf6371
+Author: Stefanik Gábor <netrolller.3d at gmail.com>
+Date:   Mon Jun 30 17:23:30 2008 +0800
+
+    iwlwifi: enable packet injection for iwl3945
+    
+    This patch enables packet injection on iwl3945 devices. Tested with
+    packetspammer and aireplay-ng.
+    
+    Signed-off-by: Gábor Stefanik <netrolller.3d at gmail.com>
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a6ecfe5a9bd32c9426f9af801e62f21da132a2cc
+Author: Zhu Yi <yi.zhu at intel.com>
+Date:   Mon Jun 30 17:23:29 2008 +0800
+
+    iwlwifi: drop skb silently for Tx request in monitor mode
+    
+    This patch fixes the problem to keep mac80211 resubmitting SKBs
+    when Tx request cannot be met in monitor mode.
+    
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6fe878497b04b9c428842ab9c89c0e2d712860ad
+Author: Rick Farrington <rickdic at hotmail.com>
+Date:   Mon Jun 30 17:23:28 2008 +0800
+
+    iwlwifi: fix incorrect monitor mode operation
+    
+    This patch fixes monitor mode operation for iwlwifi.
+    
+    Problems addressed:
+    1. when monitor mode was enabled, multiple, overlapped calls were being
+    made to 'iwl3945_bg_set_monitor'
+    
+    2. when monitor mode was disabled (via the configure_filter callback),
+    the driver was still enabling monitor mode
+    
+    3. when monitor mode was enabled, the selected channel was not set
+    (eg. 'iwconfig wlanx mode monitor channel n' DID NOT SET channel 'n'
+    when packet capture was subsequently enabled)
+    
+    Signed-off-by: Rick Farrington <rickdic at hotmail.com>
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 32c932be01d96abe84340b0831db949ca4713292
+Author: Rick Farrington <rickdic at hotmail.com>
+Date:   Mon Jun 30 17:23:27 2008 +0800
+
+    iwlwifi: fix incorrect 5GHz rates reported in monitor mode
+    
+    This patch fixes the rates reported in monitor mode operation
+    (Wireshark) for iwlwifi.
+    
+    Previously, packets with rates of 6M..24M would be reported
+    incorrectly and packets with rates of 36M..54M would not passed
+    up the stack.
+    
+    Signed-off-by: Rick Farrington <rickdic at hotmail.com>
+    Signed-off-by: Zhu Yi <yi.zhu at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0a078ffa011209c307880da10917ef205b4b11f4
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Mon Jun 30 17:23:26 2008 +0800
+
+    iwlwifi: fix 4965 uCode load
+    
+    This patch fixes uCode load in 4965 HW
+    
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a9efa652cbfead13bbe200878f8a2d74f3543e1b
+Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+Date:   Mon Jun 30 17:23:25 2008 +0800
+
+    iwlwifi: clean up HW RF-kill state machine and restarts
+    
+    This patch cleans up HW RF-kill state machine.
+    
+    Signed-off-by: Mohamed Abbas <mohamed.abbas at intel.com>
+    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 154b25ce9218fbe6eebacef7907fabf6d663e639
+Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+Date:   Mon Jun 30 17:23:24 2008 +0800
+
+    iwlwifi: blocking mac_start until uCode is complete
+    
+    This patch makes iwl4965_mac_start block until the uCode has been
+    completely loaded.
+    
+    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach 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 06da0699445631e6710b1f3b2e89570325b65e7e
+Author: Ron Rindjunsky <ron.rindjunsky at intel.com>
[...17890 lines suppressed...]
+ 			return RX_DROP_UNUSABLE;
+ 
+-		printk(KERN_DEBUG "%s: invalid Michael MIC in data frame from "
+-		       "%s\n", rx->dev->name, print_mac(mac, sa));
+-
+ 		mac80211_ev_michael_mic_failure(rx->dev, rx->key->conf.keyidx,
+ 						(void *) skb->data);
+ 		return RX_DROP_UNUSABLE;
+@@ -176,59 +155,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 */
@@ -72356,7 +77364,7 @@
  		return 0;
  	}
  
-@@ -246,28 +227,16 @@ ieee80211_tx_result
+@@ -246,28 +224,16 @@ ieee80211_tx_result
  ieee80211_crypto_tkip_encrypt(struct ieee80211_tx_data *tx)
  {
  	struct sk_buff *skb = tx->skb;
@@ -72387,7 +77395,7 @@
  				return TX_DROP;
  		}
  	}
-@@ -280,14 +249,12 @@ ieee80211_rx_result
+@@ -280,14 +246,12 @@ ieee80211_rx_result
  ieee80211_crypto_tkip_decrypt(struct ieee80211_rx_data *rx)
  {
  	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
@@ -72403,7 +77411,24 @@
  
  	if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
  		return RX_CONTINUE;
-@@ -429,36 +396,41 @@ static inline int ccmp_hdr2pn(u8 *pn, u8
+@@ -315,15 +279,8 @@ ieee80211_crypto_tkip_decrypt(struct iee
+ 					  hdr->addr1, hwaccel, rx->queue,
+ 					  &rx->tkip_iv32,
+ 					  &rx->tkip_iv16);
+-	if (res != TKIP_DECRYPT_OK || wpa_test) {
+-#ifdef CONFIG_MAC80211_DEBUG
+-		if (net_ratelimit())
+-			printk(KERN_DEBUG "%s: TKIP decrypt failed for RX "
+-			       "frame from %s (res=%d)\n", rx->dev->name,
+-			       print_mac(mac, rx->sta->addr), res);
+-#endif /* CONFIG_MAC80211_DEBUG */
++	if (res != TKIP_DECRYPT_OK || wpa_test)
+ 		return RX_DROP_UNUSABLE;
+-	}
+ 
+ 	/* Trim ICV */
+ 	skb_trim(skb, skb->len - TKIP_ICV_LEN);
+@@ -429,36 +386,41 @@ static inline int ccmp_hdr2pn(u8 *pn, u8
  }
  
  
@@ -72460,7 +77485,7 @@
  
  	pos = skb_push(skb, CCMP_HDR_LEN);
  	memmove(pos, pos + CCMP_HDR_LEN, hdrlen);
-@@ -478,7 +450,7 @@ static int ccmp_encrypt_skb(struct ieee8
+@@ -478,7 +440,7 @@ static int ccmp_encrypt_skb(struct ieee8
  
  	if (key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) {
  		/* hwaccel - with preallocated room for CCMP header */
@@ -72469,7 +77494,7 @@
  		return 0;
  	}
  
-@@ -495,28 +467,16 @@ ieee80211_tx_result
+@@ -495,28 +457,16 @@ ieee80211_tx_result
  ieee80211_crypto_ccmp_encrypt(struct ieee80211_tx_data *tx)
  {
  	struct sk_buff *skb = tx->skb;
@@ -72500,7 +77525,7 @@
  				return TX_DROP;
  		}
  	}
-@@ -529,7 +489,6 @@ ieee80211_rx_result
+@@ -529,7 +479,6 @@ ieee80211_rx_result
  ieee80211_crypto_ccmp_decrypt(struct ieee80211_rx_data *rx)
  {
  	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) rx->skb->data;
@@ -72508,7 +77533,7 @@
  	int hdrlen;
  	struct ieee80211_key *key = rx->key;
  	struct sk_buff *skb = rx->skb;
-@@ -537,8 +496,7 @@ ieee80211_crypto_ccmp_decrypt(struct iee
+@@ -537,8 +486,7 @@ ieee80211_crypto_ccmp_decrypt(struct iee
  	int data_len;
  	DECLARE_MAC_BUF(mac);
  
@@ -72518,9 +77543,39 @@
  
  	if ((rx->fc & IEEE80211_FCTL_FTYPE) != IEEE80211_FTYPE_DATA)
  		return RX_CONTINUE;
+@@ -554,16 +502,6 @@ ieee80211_crypto_ccmp_decrypt(struct iee
+ 	(void) ccmp_hdr2pn(pn, skb->data + hdrlen);
+ 
+ 	if (memcmp(pn, key->u.ccmp.rx_pn[rx->queue], CCMP_PN_LEN) <= 0) {
+-#ifdef CONFIG_MAC80211_DEBUG
+-		u8 *ppn = key->u.ccmp.rx_pn[rx->queue];
+-
+-		printk(KERN_DEBUG "%s: CCMP replay detected for RX frame from "
+-		       "%s (RX PN %02x%02x%02x%02x%02x%02x <= prev. PN "
+-		       "%02x%02x%02x%02x%02x%02x)\n", rx->dev->name,
+-		       print_mac(mac, rx->sta->addr),
+-		       pn[0], pn[1], pn[2], pn[3], pn[4], pn[5],
+-		       ppn[0], ppn[1], ppn[2], ppn[3], ppn[4], ppn[5]);
+-#endif /* CONFIG_MAC80211_DEBUG */
+ 		key->u.ccmp.replays++;
+ 		return RX_DROP_UNUSABLE;
+ 	}
+@@ -583,12 +521,6 @@ ieee80211_crypto_ccmp_decrypt(struct iee
+ 			    skb->data + hdrlen + CCMP_HDR_LEN, data_len,
+ 			    skb->data + skb->len - CCMP_MIC_LEN,
+ 			    skb->data + hdrlen + CCMP_HDR_LEN)) {
+-#ifdef CONFIG_MAC80211_DEBUG
+-			if (net_ratelimit())
+-				printk(KERN_DEBUG "%s: CCMP decrypt failed "
+-				       "for RX frame from %s\n", rx->dev->name,
+-				       print_mac(mac, rx->sta->addr));
+-#endif /* CONFIG_MAC80211_DEBUG */
+ 			return RX_DROP_UNUSABLE;
+ 		}
+ 	}
 diff -up linux-2.6.25.noarch/net/rfkill/rfkill.c.orig linux-2.6.25.noarch/net/rfkill/rfkill.c
---- linux-2.6.25.noarch/net/rfkill/rfkill.c.orig	2008-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/net/rfkill/rfkill.c	2008-06-27 13:46:53.000000000 -0400
+--- linux-2.6.25.noarch/net/rfkill/rfkill.c.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/rfkill/rfkill.c	2008-07-01 10:56:00.000000000 -0400
 @@ -39,8 +39,56 @@ MODULE_LICENSE("GPL");
  static LIST_HEAD(rfkill_list);	/* list of registered rf switches */
  static DEFINE_MUTEX(rfkill_mutex);
@@ -72982,8 +78037,8 @@
  }
  
 diff -up linux-2.6.25.noarch/net/rfkill/rfkill-input.c.orig linux-2.6.25.noarch/net/rfkill/rfkill-input.c
---- linux-2.6.25.noarch/net/rfkill/rfkill-input.c.orig	2008-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/net/rfkill/rfkill-input.c	2008-06-27 13:46:53.000000000 -0400
+--- linux-2.6.25.noarch/net/rfkill/rfkill-input.c.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/rfkill/rfkill-input.c	2008-07-01 10:56:00.000000000 -0400
 @@ -30,39 +30,62 @@ struct rfkill_task {
  	spinlock_t lock; /* for accessing last and desired state */
  	unsigned long last; /* last schedule */
@@ -73141,8 +78196,8 @@
  };
  
 diff -up linux-2.6.25.noarch/net/rfkill/rfkill-input.h.orig linux-2.6.25.noarch/net/rfkill/rfkill-input.h
---- linux-2.6.25.noarch/net/rfkill/rfkill-input.h.orig	2008-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/net/rfkill/rfkill-input.h	2008-06-27 13:46:53.000000000 -0400
+--- linux-2.6.25.noarch/net/rfkill/rfkill-input.h.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/rfkill/rfkill-input.h	2008-07-01 10:56:00.000000000 -0400
 @@ -12,5 +12,6 @@
  #define __RFKILL_INPUT_H
  
@@ -73151,8 +78206,8 @@
  
  #endif /* __RFKILL_INPUT_H */
 diff -up linux-2.6.25.noarch/net/socket.c.orig linux-2.6.25.noarch/net/socket.c
---- linux-2.6.25.noarch/net/socket.c.orig	2008-06-25 15:43:38.000000000 -0400
-+++ linux-2.6.25.noarch/net/socket.c	2008-06-27 13:46:53.000000000 -0400
+--- linux-2.6.25.noarch/net/socket.c.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/socket.c	2008-07-01 10:56:00.000000000 -0400
 @@ -90,6 +90,7 @@
  #include <asm/unistd.h>
  
@@ -73182,8 +78237,8 @@
  }
  #endif
 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-27 13:46:37.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.c	2008-06-27 13:46:43.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c	2008-07-01 10:56:00.000000000 -0400
 @@ -143,8 +143,11 @@ void cfg80211_put_dev(struct cfg80211_re
  int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
  			char *newname)
@@ -73247,8 +78302,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-06-27 13:46:37.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-06-27 13:46:43.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/radiotap.c.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-07-01 10:56:00.000000000 -0400
 @@ -59,23 +59,21 @@ int ieee80211_radiotap_iterator_init(
  		return -EINVAL;
  
@@ -73290,8 +78345,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-06-25 15:43:38.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/wext.c	2008-06-27 13:46:53.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig	2008-07-01 10:55:42.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c	2008-07-01 10:56:00.000000000 -0400
 @@ -500,7 +500,7 @@ static int call_commit_handler(struct ne
  /*
   * Calculate size of private arguments

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- linux-2.6-wireless.patch	27 Jun 2008 19:59:42 -0000	1.43
+++ linux-2.6-wireless.patch	1 Jul 2008 15:29:57 -0000	1.44
@@ -1,3 +1,41 @@
+commit 23976efedd5ecb420b87455787c537eb4aed1981
+Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+Date:   Sat Jun 28 02:50:13 2008 +0300
+
+    mac80211: don't accept WEP keys other than WEP40 and WEP104
+    
+    This patch makes mac80211 refuse a WEP key whose length is not WEP40 nor
+    WEP104.
+    
+    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1bcca3c463e4930cef9986b05165bb0b3eb46f63
+Author: Pavel Roskin <proski at gnu.org>
+Date:   Fri Jun 27 16:19:58 2008 -0400
+
+    hostap: fix sparse warnings
+    
+    Rewrite AID calculation in handle_pspoll() to avoid truncating bits.
+    Make hostap_80211_header_parse() static, don't export it.  Avoid
+    shadowing variables.
+    
+    Signed-off-by: Pavel Roskin <proski at gnu.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 15ea0ebc5b7305cc75189cb6b7924d0db5278e0c
+Author: Pavel Roskin <proski at gnu.org>
+Date:   Fri Jun 27 16:19:52 2008 -0400
+
+    hostap: don't report useless WDS frames by default
+    
+    DEBUG_EXTRA is reported to the kernel log by default, but DEBUG_EXTRA2
+    is not.  Unrelated WDS frames pollute the log unnecessarily.
+    
+    Signed-off-by: Pavel Roskin <proski at gnu.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
 commit 00eb7fe77eb455f807c396f9917f0f623d4c84bb
 Author: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
 Date:   Thu Jun 26 12:13:46 2008 +0300
@@ -153,8 +191,8 @@
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
 diff -up linux-2.6.25.noarch/drivers/net/wireless/b43/leds.c.orig linux-2.6.25.noarch/drivers/net/wireless/b43/leds.c
---- linux-2.6.25.noarch/drivers/net/wireless/b43/leds.c.orig	2008-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/leds.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/leds.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/leds.c	2008-07-01 10:48:12.000000000 -0400
 @@ -72,6 +72,9 @@ static void b43_led_brightness_set(struc
  	struct b43_wldev *dev = led->dev;
  	bool radio_enabled;
@@ -166,8 +204,8 @@
  	 * but we want to avoid the locking overhead and we don't care
  	 * whether the LED has the wrong state for a second. */
 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-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/dma.c	2008-07-01 10:48:12.000000000 -0400
 @@ -876,6 +876,7 @@ struct b43legacy_dmaring *b43legacy_setu
  	if (!ring)
  		goto out;
@@ -185,8 +223,8 @@
  	ring->mmio_base = b43legacy_dmacontroller_base(type, controller_index);
  	ring->index = controller_index;
 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-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c	2008-07-01 10:48:12.000000000 -0400
 @@ -2378,8 +2378,10 @@ static int b43legacy_op_tx(struct ieee80
  	} else
  		err = b43legacy_dma_tx(dev, skb, ctl);
@@ -201,8 +239,8 @@
  }
  
 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-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-07-01 10:48:12.000000000 -0400
 @@ -2883,12 +2883,11 @@ static int b43_op_tx(struct ieee80211_hw
  
  	if (unlikely(skb->len < 2 + 2 + 6)) {
@@ -232,9 +270,138 @@
  	return NETDEV_TX_OK;
  }
  
+diff -up linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c.orig linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c
+--- linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c.orig	2008-04-16 22:49:44.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_80211_rx.c	2008-07-01 10:48:57.000000000 -0400
+@@ -64,7 +64,7 @@ int prism2_rx_80211(struct net_device *d
+ 	int hdrlen, phdrlen, head_need, tail_need;
+ 	u16 fc;
+ 	int prism_header, ret;
+-	struct ieee80211_hdr_4addr *hdr;
++	struct ieee80211_hdr_4addr *fhdr;
+ 
+ 	iface = netdev_priv(dev);
+ 	local = iface->local;
+@@ -83,8 +83,8 @@ int prism2_rx_80211(struct net_device *d
+ 		phdrlen = 0;
+ 	}
+ 
+-	hdr = (struct ieee80211_hdr_4addr *) skb->data;
+-	fc = le16_to_cpu(hdr->frame_ctl);
++	fhdr = (struct ieee80211_hdr_4addr *) skb->data;
++	fc = le16_to_cpu(fhdr->frame_ctl);
+ 
+ 	if (type == PRISM2_RX_MGMT && (fc & IEEE80211_FCTL_VERS)) {
+ 		printk(KERN_DEBUG "%s: dropped management frame with header "
+@@ -551,7 +551,7 @@ hostap_rx_frame_wds(local_info_t *local,
+ 	     hdr->addr1[2] != 0xff || hdr->addr1[3] != 0xff ||
+ 	     hdr->addr1[4] != 0xff || hdr->addr1[5] != 0xff)) {
+ 		/* RA (or BSSID) is not ours - drop */
+-		PDEBUG(DEBUG_EXTRA, "%s: received WDS frame with "
++		PDEBUG(DEBUG_EXTRA2, "%s: received WDS frame with "
+ 		       "not own or broadcast %s=%s\n",
+ 		       local->dev->name,
+ 		       fc & IEEE80211_FCTL_FROMDS ? "RA" : "BSSID",
+diff -up linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_ap.c
+--- linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig	2008-07-01 10:47:45.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_ap.c	2008-07-01 10:48:57.000000000 -0400
+@@ -1930,7 +1930,7 @@ static void handle_pspoll(local_info_t *
+ 		PDEBUG(DEBUG_PS, "   PSPOLL and AID[15:14] not set\n");
+ 		return;
+ 	}
+-	aid &= ~BIT(15) & ~BIT(14);
++	aid &= ~(BIT(15) | BIT(14));
+ 	if (aid == 0 || aid > MAX_AID_TABLE_SIZE) {
+ 		PDEBUG(DEBUG_PS, "   invalid aid=%d\n", aid);
+ 		return;
+diff -up linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_cs.c
+--- linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig	2008-07-01 10:34:15.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_cs.c	2008-07-01 10:48:57.000000000 -0400
+@@ -533,10 +533,10 @@ static void prism2_detach(struct pcmcia_
+ do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
+ 
+ #define CFG_CHECK2(fn, retf) \
+-do { int ret = (retf); \
+-if (ret != 0) { \
+-	PDEBUG(DEBUG_EXTRA, "CardServices(" #fn ") returned %d\n", ret); \
+-	cs_error(link, fn, ret); \
++do { int _ret = (retf); \
++if (_ret != 0) { \
++	PDEBUG(DEBUG_EXTRA, "CardServices(" #fn ") returned %d\n", _ret); \
++	cs_error(link, fn, _ret); \
+ 	goto next_entry; \
+ } \
+ } while (0)
+diff -up linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_hw.c
+--- linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig	2008-07-01 10:34:15.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_hw.c	2008-07-01 10:48:57.000000000 -0400
+@@ -2835,7 +2835,7 @@ static void hostap_passive_scan(unsigned
+ {
+ 	local_info_t *local = (local_info_t *) data;
+ 	struct net_device *dev = local->dev;
+-	u16 channel;
++	u16 chan;
+ 
+ 	if (local->passive_scan_interval <= 0)
+ 		return;
+@@ -2872,11 +2872,11 @@ static void hostap_passive_scan(unsigned
+ 
+ 		printk(KERN_DEBUG "%s: passive scan channel %d\n",
+ 		       dev->name, local->passive_scan_channel);
+-		channel = local->passive_scan_channel;
++		chan = local->passive_scan_channel;
+ 		local->passive_scan_state = PASSIVE_SCAN_WAIT;
+ 		local->passive_scan_timer.expires = jiffies + HZ / 10;
+ 	} else {
+-		channel = local->channel;
++		chan = local->channel;
+ 		local->passive_scan_state = PASSIVE_SCAN_LISTEN;
+ 		local->passive_scan_timer.expires = jiffies +
+ 			local->passive_scan_interval * HZ;
+@@ -2884,9 +2884,9 @@ static void hostap_passive_scan(unsigned
+ 
+ 	if (hfa384x_cmd_callback(dev, HFA384X_CMDCODE_TEST |
+ 				 (HFA384X_TEST_CHANGE_CHANNEL << 8),
+-				 channel, NULL, 0))
++				 chan, NULL, 0))
+ 		printk(KERN_ERR "%s: passive scan channel set %d "
+-		       "failed\n", dev->name, channel);
++		       "failed\n", dev->name, chan);
+ 
+ 	add_timer(&local->passive_scan_timer);
+ }
+diff -up linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_main.c.orig linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_main.c
+--- linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_main.c.orig	2008-07-01 10:34:15.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/hostap/hostap_main.c	2008-07-01 10:48:57.000000000 -0400
+@@ -594,7 +594,8 @@ void hostap_dump_tx_header(const char *n
+ }
+ 
+ 
+-int hostap_80211_header_parse(const struct sk_buff *skb, unsigned char *haddr)
++static int hostap_80211_header_parse(const struct sk_buff *skb,
++				     unsigned char *haddr)
+ {
+ 	struct hostap_interface *iface = netdev_priv(skb->dev);
+ 	local_info_t *local = iface->local;
+@@ -857,7 +858,6 @@ const struct header_ops hostap_80211_ops
+ 	.rebuild	= eth_rebuild_header,
+ 	.cache		= eth_header_cache,
+ 	.cache_update	= eth_header_cache_update,
+-
+ 	.parse		= hostap_80211_header_parse,
+ };
+ EXPORT_SYMBOL(hostap_80211_ops);
+@@ -1150,7 +1150,6 @@ EXPORT_SYMBOL(hostap_set_roaming);
+ EXPORT_SYMBOL(hostap_set_auth_algs);
+ EXPORT_SYMBOL(hostap_dump_rx_header);
+ EXPORT_SYMBOL(hostap_dump_tx_header);
+-EXPORT_SYMBOL(hostap_80211_header_parse);
+ EXPORT_SYMBOL(hostap_80211_get_hdrlen);
+ EXPORT_SYMBOL(hostap_get_stats);
+ EXPORT_SYMBOL(hostap_setup_dev);
 diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c
---- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig	2008-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-07-01 10:48:12.000000000 -0400
 @@ -2227,7 +2227,10 @@ static int iwl3945_scan_initiate(struct 
  	}
  
@@ -314,8 +481,8 @@
  		IWL_DEBUG_MAC80211("leave - invalid channel\n");
  		spin_unlock_irqrestore(&priv->lock, flags);
 diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c
---- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig	2008-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-07-01 10:48:12.000000000 -0400
 @@ -1774,7 +1774,10 @@ static int iwl4965_scan_initiate(struct 
  	}
  
@@ -415,8 +582,8 @@
  		goto done;
  	}
 diff -up linux-2.6.25.noarch/drivers/net/wireless/prism54/islpci_eth.c.orig linux-2.6.25.noarch/drivers/net/wireless/prism54/islpci_eth.c
---- linux-2.6.25.noarch/drivers/net/wireless/prism54/islpci_eth.c.orig	2008-04-16 22:49:44.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/prism54/islpci_eth.c	2008-06-27 15:45:09.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/prism54/islpci_eth.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/prism54/islpci_eth.c	2008-07-01 10:48:12.000000000 -0400
 @@ -290,7 +290,7 @@ islpci_monitor_rx(islpci_private *priv, 
  
  		avs->version = cpu_to_be32(P80211CAPTURE_VERSION);
@@ -427,8 +594,8 @@
  		avs->phytype = cpu_to_be32(6);	/*OFDM: 6 for (g), 8 for (a) */
  		avs->channel = cpu_to_be32(channel_of_freq(freq));
 diff -up linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2500usb.c.orig linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2500usb.c
---- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2500usb.c.orig	2008-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2500usb.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2500usb.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2500usb.c	2008-07-01 10:48:12.000000000 -0400
 @@ -138,11 +138,8 @@ static void rt2500usb_bbp_write(struct r
  	 * Wait until the BBP becomes ready.
  	 */
@@ -499,8 +666,8 @@
  
  static void rt2500usb_rf_write(struct rt2x00_dev *rt2x00dev,
 diff -up linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c
---- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig	2008-06-27 15:43:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c	2008-06-27 15:45:09.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c	2008-07-01 10:48:12.000000000 -0400
 @@ -75,7 +75,7 @@ static void rt2x00lib_start_link_tuner(s
  
  	rt2x00lib_reset_link_tuner(rt2x00dev);
@@ -596,8 +763,8 @@
  	 */
  	rt2x00lib_remove_hw(rt2x00dev);
 diff -up linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00.h
---- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig	2008-06-27 15:43:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00.h	2008-06-27 15:45:09.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00.h	2008-07-01 10:48:12.000000000 -0400
 @@ -821,6 +821,7 @@ struct rt2x00_dev {
  	/*
  	 * Scheduled work.
@@ -607,8 +774,8 @@
  	struct work_struct filter_work;
  
 diff -up linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c.orig linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c
---- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c.orig	2008-06-27 15:43:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c	2008-06-27 15:45:09.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt2x00mac.c	2008-07-01 10:48:12.000000000 -0400
 @@ -428,7 +428,7 @@ void rt2x00mac_configure_filter(struct i
  	if (!test_bit(DRIVER_REQUIRE_SCHEDULED, &rt2x00dev->flags))
  		rt2x00dev->ops->lib->config_filter(rt2x00dev, *total_flags);
@@ -628,8 +795,8 @@
  	spin_unlock(&intf->lock);
  }
 diff -up linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt73usb.c
---- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-07-01 10:48:12.000000000 -0400
 @@ -134,11 +134,8 @@ static void rt73usb_bbp_write(struct rt2
  	 * Wait until the BBP becomes ready.
  	 */
@@ -697,9 +864,28 @@
  }
  
  static void rt73usb_rf_write(struct rt2x00_dev *rt2x00dev,
+diff -up linux-2.6.25.noarch/include/net/mac80211.h.orig linux-2.6.25.noarch/include/net/mac80211.h
+--- linux-2.6.25.noarch/include/net/mac80211.h.orig	2008-07-01 10:47:45.000000000 -0400
++++ linux-2.6.25.noarch/include/net/mac80211.h	2008-07-01 10:48:57.000000000 -0400
+@@ -595,6 +595,15 @@ enum ieee80211_key_alg {
+ 	ALG_CCMP,
+ };
+ 
++/**
++ * enum ieee80211_key_len - key length
++ * @WEP40: WEP 5 byte long key
++ * @WEP104: WEP 13 byte long key
++ */
++enum ieee80211_key_len {
++	LEN_WEP40 = 5,
++	LEN_WEP104 = 13,
++};
+ 
+ /**
+  * enum ieee80211_key_flags - key flags
 diff -up linux-2.6.25.noarch/net/mac80211/key.c.orig linux-2.6.25.noarch/net/mac80211/key.c
---- linux-2.6.25.noarch/net/mac80211/key.c.orig	2008-06-27 15:43:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/key.c	2008-06-27 15:45:09.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/key.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/key.c	2008-07-01 10:48:12.000000000 -0400
 @@ -380,6 +380,15 @@ void ieee80211_key_free(struct ieee80211
  	if (!key)
  		return;
@@ -716,9 +902,26 @@
  	spin_lock_irqsave(&key->sdata->local->key_lock, flags);
  	__ieee80211_key_free(key);
  	spin_unlock_irqrestore(&key->sdata->local->key_lock, flags);
+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-07-01 10:47:46.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wext.c	2008-07-01 10:48:57.000000000 -0400
+@@ -95,6 +95,13 @@ static int ieee80211_set_encryption(stru
+ 			}
+ 		}
+ 
++		if (alg == ALG_WEP &&
++			key_len != LEN_WEP40 && key_len != LEN_WEP104) {
++			ieee80211_key_free(key);
++			err = -EINVAL;
++			goto out_unlock;
++		}
++
+ 		ieee80211_key_link(key, sdata, sta);
+ 
+ 		if (set_tx_key || (!sta && !sdata->default_key && key))
 diff -up linux-2.6.25.noarch/net/wireless/reg.c.orig linux-2.6.25.noarch/net/wireless/reg.c
---- linux-2.6.25.noarch/net/wireless/reg.c.orig	2008-06-27 15:43:49.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/reg.c	2008-06-27 15:44:28.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/reg.c.orig	2008-07-01 10:47:49.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/reg.c	2008-07-01 10:48:12.000000000 -0400
 @@ -80,6 +80,23 @@ static const struct ieee80211_channel_ra
  				     IEEE80211_CHAN_RADAR),
  };




More information about the fedora-extras-commits mailing list