rpms/kernel/F-8 config-generic, 1.75, 1.76 kernel.spec, 1.505, 1.506 linux-2.6-at76.patch, 1.10, 1.11 linux-2.6-wireless-fixups.patch, 1.7, 1.8 linux-2.6-wireless-pending.patch, 1.53, 1.54

John W. Linville (linville) fedora-extras-commits at redhat.com
Fri Aug 1 15:28:37 UTC 2008


Author: linville

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

Modified Files:
	config-generic kernel.spec linux-2.6-at76.patch 
	linux-2.6-wireless-fixups.patch 
	linux-2.6-wireless-pending.patch 
Log Message:
Upstream wireless updates from 2008-07-14 ; Upstream wireless fixes from 2008-07-29 ; Revert at76_usb to version from before attempted mac80211 port


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/config-generic,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -r1.75 -r1.76
--- config-generic	25 Jul 2008 23:20:02 -0000	1.75
+++ config-generic	1 Aug 2008 15:28:05 -0000	1.76
@@ -1270,6 +1270,8 @@
 CONFIG_IEEE80211_SOFTMAC_DEBUG=y
 CONFIG_CFG80211=m
 CONFIG_NL80211=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
 
 CONFIG_ADM8211=m
 CONFIG_ATH5K=m


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.505
retrieving revision 1.506
diff -u -r1.505 -r1.506
--- kernel.spec	28 Jul 2008 19:10:50 -0000	1.505
+++ kernel.spec	1 Aug 2008 15:28:05 -0000	1.506
@@ -1841,6 +1841,13 @@
 
 
 %changelog
+* Fri Aug 01 2008 John W. Linville <linville at redhat.com> 2.6.25.13-66
+- Upstream wireless updates from 2008-07-14
+  (http://marc.info/?l=linux-wireless&m=121606436000705&w=2)
+- Upstream wireless fixes from 2008-07-29
+  (http://marc.info/?l=linux-wireless&m=121737750023195&w=2)
+- Revert at76_usb to version from before attempted mac80211 port
+
 * Sun Jul 28 2008 Kyle McMartin <kmcmartin at redhat.com> 2.6.25.13-65
 - Linux 2.6.25.13
 

linux-2.6-at76.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.10 -r 1.11 linux-2.6-at76.patch
Index: linux-2.6-at76.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/linux-2.6-at76.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- linux-2.6-at76.patch	29 May 2008 18:46:09 -0000	1.10
+++ linux-2.6-at76.patch	1 Aug 2008 15:28:05 -0000	1.11
@@ -1,306 +1,4 @@
-commit 34f6f7e889723def0ae895ca8aaa0b12e6ee3f6c
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date:   Thu May 15 12:55:29 2008 +0200
-
-    at76_usb: move TX info into skb->cb
-    
-    This patch converts mac80211 and all drivers to have transmit
-    information and status in skb->cb rather than allocating extra
-    memory for it and copying all the data around. To make it fit,
-    a union is used where only data that is necessary for all steps
-    is kept outside of the union.
-    
-    A number of fixes were done by Ivo, as well as the rt2x00 part
-    of this patch.
-    
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
-    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
-    Acked-by: David S. Miller <davem at davemloft.net>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 5d77944bc40ebe1b7b1c56fb2f92684b4c29b66b
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date:   Thu May 15 12:55:27 2008 +0200
-
-    at76_usb: use rate index in TX control
-    
-    This patch modifies struct ieee80211_tx_control to give band
-    info and the rate index (instead of rate pointers) to drivers.
-    This mostly serves to reduce the TX control structure size to
-    make it fit into skb->cb so that the fragmentation code can
-    put it there and we can think about passing it to drivers that
-    way in the future.
-    
-    The rt2x00 driver update was done by Ivo, thanks.
-    
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
-    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit a7782d1764b316686de4231286c677e230018021
-Author: Johannes Berg <johannes at sipsolutions.net>
-Date:   Thu May 15 12:55:26 2008 +0200
-
-    at76_usb: let drivers wake but not start queues
-    
-    Having drivers start queues is just confusing, their ->start()
-    callback can block and do whatever is necessary, so let mac80211
-    start queues and have drivers wake queues when necessary (to get
-    packets flowing again right away.)
-    
-    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
-    Acked-by: David S. Miller <davem at davemloft.net>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 761fb2009c498157d653d9aa9dfd8565039aa072
-Author: Bruno Randolf <br1 at einfach.org>
-Date:   Thu May 8 19:15:40 2008 +0200
-
-    at76: use hardware flags for signal/noise units
-    
-    This is the at76_usb bits...
-    
-    trying to clean up the signal/noise code. the previous code in mac80211 had
-    confusing names for the related variables, did not have much definition of
-    what units of signal and noise were provided and used implicit mechanisms from
-    the wireless extensions.
-    
-    this patch introduces hardware capability flags to let the hardware specify
-    clearly if it can provide signal and noise level values and which units it can
-    provide. this also anticipates possible new units like RCPI in the future.
-    
-    for signal:
-    
-      IEEE80211_HW_SIGNAL_UNSPEC - unspecified, unknown, hw specific
-      IEEE80211_HW_SIGNAL_DB     - dB difference to unspecified reference point
-      IEEE80211_HW_SIGNAL_DBM    - dBm, difference to 1mW
-    
-    for noise we currently only have dBm:
-    
-      IEEE80211_HW_NOISE_DBM     - dBm, difference to 1mW
-    
-    if IEEE80211_HW_SIGNAL_UNSPEC or IEEE80211_HW_SIGNAL_DB is used the driver has
-    to provide the maximum value (max_signal) it reports in order for applications
-    to make sense of the signal values.
-    
-    i tried my best to find out for each driver what it can provide and update it
-    but i'm not sure (?) for some of them and used the more conservative guess in
-    doubt. this can be fixed easily after this patch has been merged by changing
-    the hardware flags of the driver.
-    
-    DRIVER          SIGNAL    MAX	NOISE   QUAL
-    -----------------------------------------------------------------
-    adm8211         unspec(?) 100   n/a     missing
-    at76_usb        unspec(?) (?)   unused  missing
-    ath5k           dBm             dBm     percent rssi
-    b43legacy       dBm             dBm     percent jssi(?)
-    b43             dBm             dBm     percent jssi(?)
-    iwl-3945        dBm             dBm     percent snr+more
-    iwl-4965        dBm             dBm     percent snr+more
-    p54             unspec    127   n/a     missing
-    rt2x00          dBm	        n/a     percent rssi+tx/rx frame success
-      rt2400        dBm             n/a
-      rt2500pci     dBm             n/a
-      rt2500usb     dBm             n/a
-      rt61pci       dBm             n/a
-      rt73usb       dBm             n/a
-    rtl8180         unspec(?) 65    n/a     (?)
-    rtl8187         unspec(?) 65    (?)     noise(?)
-    zd1211          dB(?)     100   n/a     percent
-    
-    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
-    
-    Signed-off-by: Bruno Randolf <br1 at einfach.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit ace095545ffa056bf906496a7be0808823fa9980
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Fri Feb 22 00:01:07 2008 -0500
-
-    at76_usb: make the driver depend on MAC80211
-    
-    Signed-off-by: Pavel Roskin <proski at gnu.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 590364c5a53756b670dd104e4cddd8e760875e2f
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Fri Feb 22 00:01:01 2008 -0500
-
-    at76_usb: reindent, reorder initializers for readability
-    
-    Signed-off-by: Pavel Roskin <proski at gnu.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 00a1912a53673056e06572bfa37f85b8ef65d682
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Fri Feb 22 00:00:55 2008 -0500
-
-    at76_usb: add more MODULE_AUTHOR entries
-    
-    Signed-off-by: Pavel Roskin <proski at gnu.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit cad8f142e3505c0bf0f70a16c6fd7c441697e9e2
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Fri Feb 22 00:00:50 2008 -0500
-
-    at76_usb: remove unneeded code
-    
-    Signed-off-by: Pavel Roskin <proski at gnu.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 7babe23f68a622c32bbaf6dfaec3d36644eaa946
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Fri Feb 22 00:00:44 2008 -0500
-
-    at76_usb: fix missing newlines in printk, improve some messages
-    
-    It's important to know which function failed.
-    
-    Signed-off-by: Pavel Roskin <proski at gnu.org>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 0678f4b57e5d832ec56a54830b8dd94692e1f291
-Author: Kalle Valo <kalle.valo at iki.fi>
-Date:   Sun Feb 10 17:01:19 2008 +0200
-
-    at76_usb: Remove struct net_device
-    
-    This patch contains only code removal, no code has been modified.
-    
-    Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 5b6e27b59e14602e50f32b82cdb9781535bcbbbc
-Author: Kalle Valo <kalle.valo at iki.fi>
-Date:   Sun Feb 10 17:01:11 2008 +0200
-
-    at76_usb: Prepare for struct net_device removal
-    
-    Some cleanup to make it easier to remove the struct net_device.
-    
-    Signed-off-by: Kalle Valo <kalle.valo at iki.fi>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 12189dc89c5b54fa0c48693f853223d738869896
-Author: Kalle Valo <kalle.valo at iki.fi>
-Date:   Sun Feb 10 17:01:04 2008 +0200
-
-    at76_usb: Allocate struct at76_priv using ieee80211_alloc_hw()
-    
-    This is for the preparation to remove struct net_device.
[...5943 lines suppressed...]
 +
 +	struct urb *tx_urb;	/* URB for sending data */
@@ -3918,17 +6728,26 @@
 +	struct mutex mtx;	/* locks this structure */
 +
 +	/* work queues */
++	struct work_struct work_assoc_done;
++	struct work_struct work_join;
++	struct work_struct work_new_bss;
++	struct work_struct work_start_scan;
 +	struct work_struct work_set_promisc;
 +	struct work_struct work_submit_rx;
-+	struct delayed_work dwork_hw_scan;
++	struct delayed_work dwork_restart;
++	struct delayed_work dwork_get_scan;
++	struct delayed_work dwork_beacon;
++	struct delayed_work dwork_auth;
++	struct delayed_work dwork_assoc;
 +
 +	struct tasklet_struct rx_tasklet;
 +
 +	/* the WEP stuff */
 +	int wep_enabled;	/* 1 if WEP is enabled */
 +	int wep_key_id;		/* key id to be used */
-+	u8 wep_keys[WEP_KEYS][WEP_LARGE_KEY_LEN];	/* WEP keys */
-+	u8 wep_keys_len[WEP_KEYS];	/* length of WEP keys */
++	u8 wep_keys[WEP_KEYS][WEP_KEY_LEN];	/* the four WEP keys,
++						   5 or 13 bytes are used */
++	u8 wep_keys_len[WEP_KEYS];	/* the length of the above keys */
 +
 +	int channel;
 +	int iw_mode;
@@ -3950,13 +6769,44 @@
 +	int scan_mode;		/* SCAN_TYPE_ACTIVE, SCAN_TYPE_PASSIVE */
 +	int scan_need_any;	/* if set, need to scan for any ESSID */
 +
++	/* the list we got from scanning */
++	spinlock_t bss_list_spinlock;	/* protects bss_list operations */
++	struct list_head bss_list;	/* list of BSS we got beacons from */
++	struct timer_list bss_list_timer;	/* timer to purge old entries
++						   from bss_list */
++	struct bss_info *curr_bss;	/* current BSS */
 +	u16 assoc_id;		/* current association ID, if associated */
 +
++	u8 wanted_bssid[ETH_ALEN];
++	int wanted_bssid_valid;	/* != 0 if wanted_bssid is to be used */
++
++	/* some data for infrastructure mode only */
++	spinlock_t mgmt_spinlock;	/* this spinlock protects access to
++					   next_mgmt_bulk */
++
++	struct at76_tx_buffer *next_mgmt_bulk;	/* pending management msg to
++						   send via bulk out */
++	enum mac_state mac_state;
++	enum {
++		SCAN_IDLE,
++		SCAN_IN_PROGRESS,
++		SCAN_COMPLETED
++	} scan_state;
++	time_t last_scan;
++
++	int retries;		/* remaining retries in case of timeout when
++				 * sending AuthReq or AssocReq */
 +	u8 pm_mode;		/* power management mode */
 +	u32 pm_period;		/* power management period in microseconds */
 +
 +	struct reg_domain const *domain;	/* reg domain description */
 +
++	/* iwspy support */
++	spinlock_t spy_spinlock;
++	struct iw_spy_data spy_data;
++
++	struct iw_public_data wireless_data;
++
 +	/* These fields contain HW config provided by the device (not all of
 +	 * these fields are used by all board types) */
 +	u8 mac_addr[ETH_ALEN];
@@ -3964,6 +6814,9 @@
 +
 +	struct at76_card_config card_config;
 +
++	/* store rx fragments until complete */
++	struct rx_data_buf rx_data[NR_RX_DATA_BUF];
++
 +	enum board_type board_type;
 +	struct mib_fw_version fw_version;
 +
@@ -3971,16 +6824,58 @@
 +	unsigned int netdev_registered:1;
 +	struct set_mib_buffer mib_buf;	/* global buffer for set_mib calls */
 +
++	/* beacon counting */
 +	int beacon_period;	/* period of mgmt beacons, Kus */
++	int beacons_received;
++	unsigned long beacons_last_qual;	/* time we restarted counting
++						   beacons */
++};
 +
-+	struct ieee80211_hw *hw;
-+	int mac80211_registered;
++struct at76_rx_radiotap {
++	struct ieee80211_radiotap_header rt_hdr;
++	__le64 rt_tsft;
++	u8 rt_flags;
++	u8 rt_rate;
++	s8 rt_signal;
++	s8 rt_noise;
 +};
 +
-+#define AT76_SUPPORTED_FILTERS FIF_PROMISC_IN_BSS
++#define AT76_RX_RADIOTAP_PRESENT		  \
++	((1 << IEEE80211_RADIOTAP_TSFT)		| \
++	(1 << IEEE80211_RADIOTAP_FLAGS)		| \
++	(1 << IEEE80211_RADIOTAP_RATE)		| \
++	(1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL)	| \
++	(1 << IEEE80211_RADIOTAP_DB_ANTNOISE))
++
++#define BEACON_MAX_DATA_LENGTH	1500
 +
++/* the maximum size of an AssocReq packet */
++#define ASSOCREQ_MAX_SIZE \
++  (AT76_TX_HDRLEN + sizeof(struct ieee80211_assoc_request) + \
++   1 + 1 + IW_ESSID_MAX_SIZE + 1 + 1 + 4)
++
++/* for shared secret auth, add the challenge text size */
++#define AUTH_FRAME_SIZE (AT76_TX_HDRLEN + sizeof(struct ieee80211_auth))
++
++/* Maximal number of AuthReq retries */
++#define AUTH_RETRIES		3
++
++/* Maximal number of AssocReq retries */
++#define ASSOC_RETRIES		3
++
++/* Beacon timeout in managed mode when we are connected */
++#define BEACON_TIMEOUT		(10 * HZ)
++
++/* Timeout for authentication response */
++#define AUTH_TIMEOUT		(1 * HZ)
++
++/* Timeout for association response */
++#define ASSOC_TIMEOUT		(1 * HZ)
++
++/* Polling interval when scan is running */
 +#define SCAN_POLL_INTERVAL	(HZ / 4)
 +
++/* Command completion timeout */
 +#define CMD_COMPLETION_TIMEOUT	(5 * HZ)
 +
 +#define DEF_RTS_THRESHOLD	1536
@@ -3990,20 +6885,22 @@
 +#define DEF_SCAN_MIN_TIME	10
 +#define DEF_SCAN_MAX_TIME	120
 +
++#define MAX_RTS_THRESHOLD	(MAX_FRAG_THRESHOLD + 1)
++
 +/* the max padding size for tx in bytes (see calc_padding) */
 +#define MAX_PADDING_SIZE	53
 +
 +#endif				/* _AT76_USB_H */
 diff -up linux-2.6.25.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.25.noarch/drivers/net/wireless/Kconfig
---- linux-2.6.25.noarch/drivers/net/wireless/Kconfig.orig	2008-05-27 15:31:33.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/Kconfig	2008-05-27 15:31:53.000000000 -0400
-@@ -456,6 +456,14 @@ config PCMCIA_ATMEL
+--- linux-2.6.25.noarch/drivers/net/wireless/Kconfig.orig	2008-08-01 10:47:44.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/Kconfig	2008-08-01 10:47:55.000000000 -0400
+@@ -432,6 +432,14 @@ config PCMCIA_ATMEL
  	  Enable support for PCMCIA cards containing the
  	  Atmel at76c502 and at76c504 chips.
  
 +config USB_ATMEL
 +	tristate "Atmel at76c503/at76c505/at76c505a USB cards"
-+	depends on MAC80211 && WLAN_80211 && USB
++	depends on WLAN_80211 && USB
 +	select FW_LOADER
 +	---help---
 +	  Enable support for USB Wireless devices using Atmel at76c503,
@@ -4013,9 +6910,9 @@
  	tristate "Cisco/Aironet 34X/35X/4500/4800 PCMCIA cards"
  	depends on PCMCIA && (BROKEN || !M32R) && WLAN_80211
 diff -up linux-2.6.25.noarch/drivers/net/wireless/Makefile.orig linux-2.6.25.noarch/drivers/net/wireless/Makefile
---- linux-2.6.25.noarch/drivers/net/wireless/Makefile.orig	2008-05-27 15:31:33.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/Makefile	2008-05-27 15:31:53.000000000 -0400
-@@ -32,6 +32,8 @@ obj-$(CONFIG_ATMEL)             += atmel
+--- linux-2.6.25.noarch/drivers/net/wireless/Makefile.orig	2008-08-01 10:47:44.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/Makefile	2008-08-01 10:47:55.000000000 -0400
+@@ -31,6 +31,8 @@ obj-$(CONFIG_ATMEL)             += atmel
  obj-$(CONFIG_PCI_ATMEL)         += atmel_pci.o 
  obj-$(CONFIG_PCMCIA_ATMEL)      += atmel_cs.o
  
@@ -4025,8 +6922,8 @@
  
  obj-$(CONFIG_HOSTAP)		+= hostap/
 diff -up linux-2.6.25.noarch/MAINTAINERS.orig linux-2.6.25.noarch/MAINTAINERS
---- linux-2.6.25.noarch/MAINTAINERS.orig	2008-05-27 15:31:33.000000000 -0400
-+++ linux-2.6.25.noarch/MAINTAINERS	2008-05-27 15:31:53.000000000 -0400
+--- linux-2.6.25.noarch/MAINTAINERS.orig	2008-08-01 10:47:44.000000000 -0400
++++ linux-2.6.25.noarch/MAINTAINERS	2008-08-01 10:47:55.000000000 -0400
 @@ -740,6 +740,15 @@ W:	http://www.thekelleys.org.uk/atmel
  W:	http://atmelwlandriver.sourceforge.net/
  S:	Maintained

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.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- linux-2.6-wireless-fixups.patch	11 Jul 2008 19:06:48 -0000	1.7
+++ linux-2.6-wireless-fixups.patch	1 Aug 2008 15:28:05 -0000	1.8
@@ -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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/airo.c.orig	2008-07-15 16:17:34.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/airo.c	2008-07-15 16:20:32.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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-07-15 16:17:50.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/ath5k/base.c	2008-07-15 16:20:32.000000000 -0400
 @@ -58,6 +58,10 @@
  #include "reg.h"
  #include "debug.h"
@@ -221,7 +221,7 @@
  static int ath5k_calinterval = 10; /* Calibrate PHY every 10 secs (TODO: Fixme) */
  
  
-@@ -2858,9 +2862,9 @@ static void ath5k_configure_filter(struc
+@@ -2869,9 +2873,9 @@ static void ath5k_configure_filter(struc
  			if (!mclist)
  				break;
  			/* calculate XOR of eight 6-bit values */
@@ -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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h.orig	2008-07-15 16:17:34.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/b43.h	2008-07-15 16:20:32.000000000 -0400
 @@ -967,6 +967,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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h.orig	2008-07-15 16:17:34.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/b43legacy.h	2008-07-15 16:20:32.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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c.orig	2008-07-15 16:17:50.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/main.c	2008-07-15 16:20:32.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);
@@ -304,7 +304,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]];
-@@ -1720,7 +1720,7 @@ static int b43legacy_write_initvals(stru
+@@ -1728,7 +1728,7 @@ static int b43legacy_write_initvals(stru
  				goto err_format;
  			array_size -= sizeof(iv->data.d32);
  
@@ -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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c.orig	2008-07-15 16:17:34.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/phy.c	2008-07-15 16:20:32.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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c.orig	2008-07-15 16:17:34.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43legacy/radio.c	2008-07-15 16:20:32.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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c.orig	2008-07-15 16:17:34.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/lo.c	2008-07-15 16:20:32.000000000 -0400
 @@ -199,7 +199,7 @@ static void lo_measure_txctl_values(stru
  		if (lb_gain > 10) {
  			radio_pctl_reg = 0;
@@ -451,8 +451,8 @@
  		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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/main.c.orig	2008-07-15 16:17:50.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/main.c	2008-07-15 16:20:32.000000000 -0400
 @@ -1211,10 +1211,10 @@ static void handle_irq_noise(struct b43_
  	/* Get the noise samples. */
  	B43_WARN_ON(dev->noisecalc.nr_samples >= 8);
@@ -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]];
-@@ -2355,7 +2355,7 @@ static int b43_write_initvals(struct b43
+@@ -2365,7 +2365,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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/b43/phy.c	2008-07-15 16:20:32.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,9 +580,9 @@
  			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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c	2008-07-10 13:57:45.000000000 -0400
-@@ -556,36 +556,40 @@ static void iwl3945_add_radiotap(struct 
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c.orig	2008-07-15 16:17:50.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-3945.c	2008-07-15 16:20:32.000000000 -0400
+@@ -573,36 +573,40 @@ static void iwl3945_add_radiotap(struct 
  	iwl3945_rt->rt_hdr.it_pad = 0;
  
  	/* total header + data */
@@ -637,9 +637,70 @@
  			      &iwl3945_rt->rt_chbitmask);
  
  	if (rate == -1)
+diff -up linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-rx.c.orig linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-rx.c
+--- linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-rx.c.orig	2008-07-15 16:30:45.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/iwlwifi/iwl-rx.c	2008-07-15 16:35:43.000000000 -0400
+@@ -830,22 +830,23 @@ static void iwl_add_radiotap(struct iwl_
+ 	iwl4965_rt->rt_hdr.it_pad = 0;
+ 
+ 	/* total header + data */
+-	put_unaligned_le16(sizeof(*iwl4965_rt), &iwl4965_rt->rt_hdr.it_len);
++	put_unaligned(cpu_to_le16(sizeof(*iwl4965_rt)),
++		      &iwl4965_rt->rt_hdr.it_len);
+ 
+ 	/* Indicate all the fields we add to the radiotap header */
+-	put_unaligned_le32((1 << IEEE80211_RADIOTAP_TSFT) |
+-			   (1 << IEEE80211_RADIOTAP_FLAGS) |
+-			   (1 << IEEE80211_RADIOTAP_RATE) |
+-			   (1 << IEEE80211_RADIOTAP_CHANNEL) |
+-			   (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) |
+-			   (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE) |
+-			   (1 << IEEE80211_RADIOTAP_ANTENNA),
+-			   &(iwl4965_rt->rt_hdr.it_present));
++	put_unaligned(cpu_to_le32((1 << IEEE80211_RADIOTAP_TSFT) |
++				  (1 << IEEE80211_RADIOTAP_FLAGS) |
++				  (1 << IEEE80211_RADIOTAP_RATE) |
++				  (1 << IEEE80211_RADIOTAP_CHANNEL) |
++				  (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) |
++				  (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE) |
++				  (1 << IEEE80211_RADIOTAP_ANTENNA)),
++		      &iwl4965_rt->rt_hdr.it_present);
+ 
+ 	/* Zero the flags, we'll add to them as we go */
+ 	iwl4965_rt->rt_flags = 0;
+ 
+-	put_unaligned_le64(tsf, &iwl4965_rt->rt_tsf);
++	put_unaligned(cpu_to_le64(tsf), &iwl4965_rt->rt_tsf);
+ 
+ 	iwl4965_rt->rt_dbmsignal = signal;
+ 	iwl4965_rt->rt_dbmnoise = noise;
+@@ -853,14 +854,17 @@ static void iwl_add_radiotap(struct iwl_
+ 	/* Convert the channel frequency and set the flags */
+ 	put_unaligned(cpu_to_le16(stats->freq), &iwl4965_rt->rt_channelMHz);
+ 	if (!(phy_flags_hw & RX_RES_PHY_FLAGS_BAND_24_MSK))
+-		put_unaligned_le16(IEEE80211_CHAN_OFDM | IEEE80211_CHAN_5GHZ,
+-				   &iwl4965_rt->rt_chbitmask);
++		put_unaligned(cpu_to_le16(IEEE80211_CHAN_OFDM |
++					  IEEE80211_CHAN_5GHZ),
++			      &iwl4965_rt->rt_chbitmask);
+ 	else if (phy_flags_hw & RX_RES_PHY_FLAGS_MOD_CCK_MSK)
+-		put_unaligned_le16(IEEE80211_CHAN_CCK | IEEE80211_CHAN_2GHZ,
+-				   &iwl4965_rt->rt_chbitmask);
++		put_unaligned(cpu_to_le16(IEEE80211_CHAN_CCK |
++					  IEEE80211_CHAN_2GHZ),
++			      &iwl4965_rt->rt_chbitmask);
+ 	else	/* 802.11g */
+-		put_unaligned_le16(IEEE80211_CHAN_OFDM | IEEE80211_CHAN_2GHZ,
+-				   &iwl4965_rt->rt_chbitmask);
++		put_unaligned(cpu_to_le16(IEEE80211_CHAN_OFDM |
++					  IEEE80211_CHAN_2GHZ),
++			      &iwl4965_rt->rt_chbitmask);
+ 
+ 	if (rate == -1)
+ 		iwl4965_rt->rt_rate = 0;
 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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c	2008-07-10 14:00:03.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/libertas/scan.c	2008-07-15 16:20:32.000000000 -0400
 @@ -523,7 +523,7 @@ static int lbs_process_bss(struct bss_de
  
  	if (*bytesleft >= sizeof(beaconsize)) {
@@ -664,8 +725,8 @@
  	pos += 2;
  
 diff -up linux-2.6.25.noarch/drivers/net/wireless/mac80211_hwsim.c.orig linux-2.6.25.noarch/drivers/net/wireless/mac80211_hwsim.c
---- linux-2.6.25.noarch/drivers/net/wireless/mac80211_hwsim.c.orig	2008-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/mac80211_hwsim.c	2008-07-10 13:57:45.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/mac80211_hwsim.c.orig	2008-07-15 16:17:50.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/mac80211_hwsim.c	2008-07-15 16:20:32.000000000 -0400
 @@ -430,16 +430,15 @@ static int __init init_mac80211_hwsim(vo
  		hwsim_radios[i] = hw;
  
@@ -687,8 +748,8 @@
  		SET_IEEE80211_DEV(hw, data->dev);
  		addr[3] = i >> 8;
 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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2008-07-15 16:20:32.000000000 -0400
 @@ -557,11 +557,11 @@ static void handle_rx_packet(struct zd_u
  	 * be padded. Unaligned access might also happen if the length_info
  	 * structure is not present.
@@ -704,8 +765,8 @@
  				return;
  			n = l+k;
 diff -up linux-2.6.25.noarch/include/linux/input.h.orig linux-2.6.25.noarch/include/linux/input.h
---- linux-2.6.25.noarch/include/linux/input.h.orig	2008-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/include/linux/input.h	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/include/linux/input.h.orig	2008-07-15 16:16:03.000000000 -0400
++++ linux-2.6.25.noarch/include/linux/input.h	2008-07-15 16:20:32.000000000 -0400
 @@ -638,6 +638,7 @@ struct input_absinfo {
  #define SW_TABLET_MODE		0x01  /* set = tablet mode */
  #define SW_HEADPHONE_INSERT	0x02  /* set = inserted */
@@ -715,9 +776,9 @@
  #define SW_CNT			(SW_MAX+1)
  
 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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/iface.c	2008-07-10 13:57:46.000000000 -0400
-@@ -53,15 +53,6 @@ int ieee80211_if_add(struct net_device *
+--- linux-2.6.25.noarch/net/mac80211/iface.c.orig	2008-07-15 16:17:50.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/iface.c	2008-07-15 16:20:32.000000000 -0400
+@@ -181,15 +181,6 @@ int ieee80211_if_add(struct ieee80211_lo
  	if (!ndev)
  		return -ENOMEM;
  
@@ -734,8 +795,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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/mesh_hwmp.c	2008-07-15 16:20:32.000000000 -0400
 @@ -26,7 +26,7 @@ static inline u32 u32_field_get(u8 *preq
  {
  	if (ae)
@@ -746,8 +807,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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/michael.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/michael.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/michael.c	2008-07-15 16:20:32.000000000 -0400
 @@ -39,17 +39,16 @@ static void michael_mic_hdr(struct micha
  	else
  		tid = 0;
@@ -797,9 +858,21 @@
 +	mic[6] = (mctx.r >> 16) & 0xff;
 +	mic[7] = (mctx.r >> 24) & 0xff;
  }
+diff -up linux-2.6.25.noarch/net/mac80211/mlme.c.orig linux-2.6.25.noarch/net/mac80211/mlme.c
+--- linux-2.6.25.noarch/net/mac80211/mlme.c.orig	2008-07-15 16:31:52.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/mlme.c	2008-07-15 16:25:34.000000000 -0400
+@@ -345,7 +345,7 @@ static void ieee80211_sta_wmm_params(str
+ 		params.aifs = pos[0] & 0x0f;
+ 		params.cw_max = ecw2cw((pos[1] & 0xf0) >> 4);
+ 		params.cw_min = ecw2cw(pos[1] & 0x0f);
+-		params.txop = get_unaligned_le16(pos + 2);
++		params.txop = pos[2] | (pos[3] << 8);
+ #ifdef CONFIG_MAC80211_VERBOSE_DEBUG
+ 		printk(KERN_DEBUG "%s: WMM queue=%d aci=%d acm=%d aifs=%d "
+ 		       "cWmin=%d cWmax=%d txop=%d\n",
 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-07-10 13:57:40.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/tkip.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/tkip.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/tkip.c	2008-07-15 16:20:32.000000000 -0400
 @@ -7,22 +7,23 @@
   * published by the Free Software Foundation.
   */
@@ -1004,8 +1077,8 @@
 +
 +
 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-07-10 13:57:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/mac80211/wpa.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/mac80211/wpa.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/mac80211/wpa.c	2008-07-15 16:20:32.000000000 -0400
 @@ -317,11 +317,13 @@ static void ccmp_special_blocks(struct s
  	memcpy(&b_0[2], hdr->addr2, ETH_ALEN);
  	memcpy(&b_0[8], pn, CCMP_PN_LEN);
@@ -1023,8 +1096,8 @@
  	memcpy(&aad[4], &hdr->addr1, 3 * ETH_ALEN);
  
 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-07-10 13:57:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/socket.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/socket.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/socket.c	2008-07-15 16:20:32.000000000 -0400
 @@ -2215,7 +2215,7 @@ static long compat_sock_ioctl(struct fil
  	struct net *net;
  
@@ -1035,8 +1108,8 @@
  	if (sock->ops->compat_ioctl)
  		ret = sock->ops->compat_ioctl(sock, cmd, arg);
 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-07-10 13:57:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/core.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/core.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/core.c	2008-07-15 16:20:32.000000000 -0400
 @@ -167,13 +167,13 @@ int cfg80211_dev_rename(struct cfg80211_
  
  	/* Ignore nop renames */
@@ -1054,8 +1127,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-07-10 13:57:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/radiotap.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-07-15 16:20:32.000000000 -0400
 @@ -59,21 +59,23 @@ int ieee80211_radiotap_iterator_init(
  		return -EINVAL;
  
@@ -1097,8 +1170,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-07-10 13:57:41.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/wext.c	2008-07-10 13:57:46.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig	2008-07-15 16:17:35.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c	2008-07-15 16:20:32.000000000 -0400
 @@ -1299,7 +1299,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.53 -r 1.54 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.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- linux-2.6-wireless-pending.patch	11 Jul 2008 19:06:48 -0000	1.53
+++ linux-2.6-wireless-pending.patch	1 Aug 2008 15:28:05 -0000	1.54
@@ -1,3 +1,1314 @@
+commit 56a6d13dfd49d90d72a1a962246206719dd9d143
+Author: Luis Carlos Cobo <luisca at cozybit.com>
+Date:   Tue Jul 29 19:59:31 2008 +0200
+
+    mac80211: fix mesh beaconing
+    
+    This patch fixes mesh beaconing, which was broken by "mac80211: revamp
+    beacon configuration".
+    
+    Signed-off-by: Luis Carlos Cobo <luisca at cozybit.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 77bbadd5ea893f364a0d1879723037678a03725c
+Author: Vegard Nossum <vegard.nossum at gmail.com>
+Date:   Tue Jul 29 13:31:47 2008 +0200
+
+    PS3: gelic: use unsigned long for irqflags
+    
+    The semantic patch I used was this:
+    
+    @@
+    expression lock;
+    identifier flags;
+    expression subclass;
+    @@
+    
+    - unsigned int flags;
+    + unsigned long flags;
+    
+    ...
+    
+    <+...
+    
+    (
+     spin_lock_irqsave(lock, flags)
+    |
+     _spin_lock_irqsave(lock)
+    |
+     spin_unlock_irqrestore(lock, flags)
+    |
+     _spin_unlock_irqrestore(lock, flags)
+    |
+     read_lock_irqsave(lock, flags)
+    |
+     _read_lock_irqsave(lock)
+    |
+     read_unlock_irqrestore(lock, flags)
+    |
+     _read_unlock_irqrestore(lock, flags)
+    |
+     write_lock_irqsave(lock, flags)
+    |
+     _write_lock_irqsave(lock)
+    |
+     write_unlock_irqrestore(lock, flags)
+    |
+     _write_unlock_irqrestore(lock, flags)
+    |
+     spin_lock_irqsave_nested(lock, flags, subclass)
+    |
+     _spin_lock_irqsave_nested(lock, subclass)
+    |
+     spin_unlock_irqrestore(lock, flags)
+    |
+     _spin_unlock_irqrestore(lock, flags)
+    |
+     _raw_spin_lock_flags(lock, flags)
+    |
+     __raw_spin_lock_flags(lock, flags)
+    )
+    
+    ...+>
+    
+    This patch was generated using the Coccinelle framework.
+    
+    Cc: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+    Cc: Julia Lawall <julia at diku.dk>
+    Cc: Alexey Dobriyan <adobriyan at gmail.com>
+    Signed-off-by: Vegard Nossum <vegard.nossum at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 14db74bcc3f7a779cf395a47e26b06a28207571a
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Tue Jul 29 13:22:52 2008 +0200
+
+    mac80211: fix cfg80211 hooks for master interface
+    
+    The master interface is a virtual interface that is registered
+    to mac80211, changing that does not seem like a good idea at
+    the moment. However, since it has no sdata, we cannot accept
+    any configuration for it. This patch makes the cfg80211 hooks
+    reject any such attempt.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit bba95fefb8e31f4799652666d05a4a9aad56e492
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Tue Jul 29 13:22:51 2008 +0200
+
+    nl80211: fix dump callbacks
+    
+    Julius Volz pointed out that the dump callbacks in nl80211 were
+    broken and fixed one of them. This patch fixes the other three
+    and also addresses the TODOs there.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Cc: Julius Volz <juliusv at google.com>
+    Cc: Thomas Graf <tgraf at suug.ch>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d0f09804144fd9471a13cf4d80e66842c7fa114f
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Tue Jul 29 11:32:07 2008 +0200
+
+    mac80211: partially fix skb->cb use
+    
+    This patch fixes mac80211 to not use the skb->cb over the queue step
+    from virtual interfaces to the master. The patch also, for now,
+    disables aggregation because that would still require requeuing,
+    will fix that in a separate patch. There are two other places (software
+    requeue and powersaving stations) where requeue can happen, but that is
+    not currently used by any drivers/not possible to use respectively.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0ccd58fc03f40529f66190b1a41e92a732d2bda8
+Author: Larry Finger <Larry.Finger at lwfinger.net>
+Date:   Mon Jul 28 22:25:08 2008 -0500
+
+    rtl8187: Improve wireless statistics for RTL8187B
+    
+    Wireless statistics produced by the RTL8187B driver are not particularly
+    informative about the strength of the received signal. From the data sheet
+    provided by Realtek, I discovered that certain parts of the RX header
+    should have the information necessary to calculate signal quality and
+    strength. With testing, it became clear that most of these quantities were
+    very jittery - only the AGC correlated with the signals expected from nearby
+    AP's. As a result, the quality and strength are derived from the agc value.
+    The scaling has been determined so that the numbers are close to those
+    obtained by b43 under the same conditions. The results are qualitatively
+    correct.
+    
+    Statistics derived for the RTL8187 have not been changed.
+    
+    The RX header variables have been renamed to match the quantites described
+    in the Realtek data sheet.
+    
+    Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1f690d7b549ef9c7424536475501885dd5b54930
+Author: Larry Finger <Larry.Finger at lwfinger.net>
+Date:   Mon Jul 28 22:08:18 2008 -0500
+
+    rtl8187: Fix for TX sequence number problem
+    
+    "mac80211: fix TX sequence numbers" broke rtl8187. This
+    patch makes the same kind of fix that was done for rt2x00. Note that
+    this code will have to be reworked for proper sequence numbers on beacons.
+    In addition, the sequence number has been placed in the hardware state,
+    not the vif state.
+    
+    Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 5422399518e8142198df888aab00acdac251f754
+Author: Rami Rosen <ramirose at gmail.com>
+Date:   Thu Jul 24 10:40:37 2008 +0300
+
+    mac80211: append CONFIG_ to MAC80211_VERBOSE_PS_DEBUG in net/mac80211/tx.c.
+    
+    In net/mac80211/tx.c, there are some #ifdef which checks
+    MAC80211_VERBOSE_PS_DEBUG
+    (which in fact is never set) instead of
+    CONFIG_MAC80211_VERBOSE_PS_DEBUG, as should be.
+    
+    This patch replaces MAC80211_VERBOSE_PS_DEBUG with
+    CONFIG_MAC80211_VERBOSE_PS_DEBUG in these #ifdef commands in
+    net/mac80211/tx.c.
+    
+    Signed-off-by: Rami Rosen <ramirose at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 0b06b2ae0e474fc6378117c832bcd94785a9e975
+Author: Harvey Harrison <harvey.harrison at gmail.com>
+Date:   Wed Jul 23 18:36:38 2008 -0700
+
+    mac80211: fix sparse integer as NULL pointer warning
+    
[...21803 lines suppressed...]
+ 				&params.station_flags))
+ 		return -EINVAL;
+ 
+-	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
++	err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
+ 	if (err)
+ 		return err;
+ 
+@@ -1202,7 +1225,7 @@ static int nl80211_del_station(struct sk
+ 	if (info->attrs[NL80211_ATTR_MAC])
+ 		mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
+ 
+-	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
++	err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
+ 	if (err)
+ 		return err;
+ 
+@@ -1271,68 +1294,78 @@ static int nl80211_send_mpath(struct sk_
+ }
+ 
+ static int nl80211_dump_mpath(struct sk_buff *skb,
+-		struct netlink_callback *cb)
++			      struct netlink_callback *cb)
+ {
+-	int wp_idx = 0;
+-	int if_idx = 0;
+-	int sta_idx = cb->args[2];
+-	int wp_start = cb->args[0];
+-	int if_start = cb->args[1];
+ 	struct mpath_info pinfo;
+ 	struct cfg80211_registered_device *dev;
+-	struct wireless_dev *wdev;
++	struct net_device *netdev;
+ 	u8 dst[ETH_ALEN];
+ 	u8 next_hop[ETH_ALEN];
++	int ifidx = cb->args[0];
++	int path_idx = cb->args[1];
+ 	int err;
+-	int exit = 0;
+ 
+-	/* TODO: filter by device */
+-	mutex_lock(&cfg80211_drv_mutex);
+-	list_for_each_entry(dev, &cfg80211_drv_list, list) {
+-		if (exit)
++	if (!ifidx) {
++		err = nlmsg_parse(cb->nlh, GENL_HDRLEN + nl80211_fam.hdrsize,
++				  nl80211_fam.attrbuf, nl80211_fam.maxattr,
++				  nl80211_policy);
++		if (err)
++			return err;
++
++		if (!nl80211_fam.attrbuf[NL80211_ATTR_IFINDEX])
++			return -EINVAL;
++
++		ifidx = nla_get_u32(nl80211_fam.attrbuf[NL80211_ATTR_IFINDEX]);
++		if (!ifidx)
++			return -EINVAL;
++	}
++
++	netdev = dev_get_by_index(&init_net, ifidx);
++	if (!netdev)
++		return -ENODEV;
++
++	dev = cfg80211_get_dev_from_ifindex(ifidx);
++	if (IS_ERR(dev)) {
++		err = PTR_ERR(dev);
++		goto out_put_netdev;
++	}
++
++	if (!dev->ops->dump_mpath) {
++		err = -ENOSYS;
++		goto out_err;
++	}
++
++	rtnl_lock();
++
++	while (1) {
++		err = dev->ops->dump_mpath(&dev->wiphy, netdev, path_idx,
++					   dst, next_hop, &pinfo);
++		if (err == -ENOENT)
+ 			break;
+-		if (++wp_idx < wp_start)
+-			continue;
+-		if_idx = 0;
++		if (err)
++			goto out_err_rtnl;
+ 
+-		mutex_lock(&dev->devlist_mtx);
+-		list_for_each_entry(wdev, &dev->netdev_list, list) {
+-			if (exit)
+-				break;
+-			if (++if_idx < if_start)
+-				continue;
+-			if (!dev->ops->dump_mpath)
+-				continue;
++		if (nl80211_send_mpath(skb, NETLINK_CB(cb->skb).pid,
++				       cb->nlh->nlmsg_seq, NLM_F_MULTI,
++				       netdev, dst, next_hop,
++				       &pinfo) < 0)
++			goto out;
+ 
+-			for (;; ++sta_idx) {
+-				rtnl_lock();
+-				err = dev->ops->dump_mpath(&dev->wiphy,
+-						wdev->netdev, sta_idx, dst,
+-						next_hop, &pinfo);
+-				rtnl_unlock();
+-				if (err) {
+-					sta_idx = 0;
+-					break;
+-				}
+-				if (nl80211_send_mpath(skb,
+-						NETLINK_CB(cb->skb).pid,
+-						cb->nlh->nlmsg_seq, NLM_F_MULTI,
+-						wdev->netdev, dst, next_hop,
+-						&pinfo) < 0) {
+-					exit = 1;
+-					break;
+-				}
+-			}
+-		}
+-		mutex_unlock(&dev->devlist_mtx);
++		path_idx++;
+ 	}
+-	mutex_unlock(&cfg80211_drv_mutex);
+ 
+-	cb->args[0] = wp_idx;
+-	cb->args[1] = if_idx;
+-	cb->args[2] = sta_idx;
+ 
+-	return skb->len;
++ out:
++	cb->args[1] = path_idx;
++	err = skb->len;
++ out_err_rtnl:
++	rtnl_unlock();
++ out_err:
++	cfg80211_put_dev(dev);
++ out_put_netdev:
++	dev_put(netdev);
++
++	return err;
+ }
+ 
+ static int nl80211_get_mpath(struct sk_buff *skb, struct genl_info *info)
+@@ -1352,7 +1385,7 @@ static int nl80211_get_mpath(struct sk_b
+ 
+ 	dst = nla_data(info->attrs[NL80211_ATTR_MAC]);
+ 
+-	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
++	err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
+ 	if (err)
+ 		return err;
+ 
+@@ -1405,7 +1438,7 @@ static int nl80211_set_mpath(struct sk_b
+ 	dst = nla_data(info->attrs[NL80211_ATTR_MAC]);
+ 	next_hop = nla_data(info->attrs[NL80211_ATTR_MPATH_NEXT_HOP]);
+ 
+-	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
++	err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
+ 	if (err)
+ 		return err;
+ 
+@@ -1440,7 +1473,7 @@ static int nl80211_new_mpath(struct sk_b
+ 	dst = nla_data(info->attrs[NL80211_ATTR_MAC]);
+ 	next_hop = nla_data(info->attrs[NL80211_ATTR_MPATH_NEXT_HOP]);
+ 
+-	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
++	err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
+ 	if (err)
+ 		return err;
+ 
+@@ -1469,7 +1502,7 @@ static int nl80211_del_mpath(struct sk_b
+ 	if (info->attrs[NL80211_ATTR_MAC])
+ 		dst = nla_data(info->attrs[NL80211_ATTR_MAC]);
+ 
+-	err = get_drv_dev_by_info_ifindex(info, &drv, &dev);
++	err = get_drv_dev_by_info_ifindex(info->attrs, &drv, &dev);
+ 	if (err)
+ 		return err;
+ 
 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-07-09 10:52:27.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-07-09 10:52:43.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/radiotap.c.orig	2008-07-30 15:19:01.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/radiotap.c	2008-07-30 15:19:25.000000000 -0400
 @@ -59,23 +59,21 @@ int ieee80211_radiotap_iterator_init(
  		return -EINVAL;
  
@@ -81802,8 +88451,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-07-09 10:52:27.000000000 -0400
-+++ linux-2.6.25.noarch/net/wireless/wext.c	2008-07-09 10:52:43.000000000 -0400
+--- linux-2.6.25.noarch/net/wireless/wext.c.orig	2008-07-30 15:19:01.000000000 -0400
++++ linux-2.6.25.noarch/net/wireless/wext.c	2008-07-30 15:19:25.000000000 -0400
 @@ -500,7 +500,7 @@ static int call_commit_handler(struct ne
  /*
   * Calculate size of private arguments




More information about the scm-commits mailing list