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...]
+ ¶ms.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