rpms/kernel/F-7 git-wireless-dev.patch, 1.24, 1.25 kernel-2.6.spec, 1.3341, 1.3342 linux-2.6-wireless-pending.patch, 1.2, 1.3 linux-2.6-wireless.patch, 1.9, 1.10 linux-2.6-iwlwifi-fw-name-compat.patch, 1.1, NONE

John W. Linville (linville) fedora-extras-commits at redhat.com
Tue Sep 18 15:08:32 UTC 2007


Author: linville

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

Modified Files:
	git-wireless-dev.patch kernel-2.6.spec 
	linux-2.6-wireless-pending.patch linux-2.6-wireless.patch 
Removed Files:
	linux-2.6-iwlwifi-fw-name-compat.patch 
Log Message:
wireless updates

git-wireless-dev.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.24 -r 1.25 git-wireless-dev.patch
Index: git-wireless-dev.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/git-wireless-dev.patch,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- git-wireless-dev.patch	30 Aug 2007 21:54:14 -0000	1.24
+++ git-wireless-dev.patch	18 Sep 2007 15:08:24 -0000	1.25
@@ -1,5 +1,6 @@
---- linux-2.6.22.noarch/CREDITS.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/CREDITS	2007-08-30 17:37:10.000000000 -0400
+diff -up linux-2.6.22.noarch/CREDITS.orig linux-2.6.22.noarch/CREDITS
+--- linux-2.6.22.noarch/CREDITS.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/CREDITS	2007-09-18 10:53:37.000000000 -0400
 @@ -665,6 +665,11 @@ D: Minor updates to SCSI types, added /p
  S: (ask for current address)
  S: USA
@@ -66,8 +67,9 @@
  N: Lars Wirzenius
  E: liw at iki.fi
  D: Linux System Administrator's Guide, author, former maintainer
---- linux-2.6.22.noarch/include/linux/nl80211.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/nl80211.h	2007-08-30 17:37:10.000000000 -0400
+diff -up linux-2.6.22.noarch/include/linux/nl80211.h.orig linux-2.6.22.noarch/include/linux/nl80211.h
+--- linux-2.6.22.noarch/include/linux/nl80211.h.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/nl80211.h	2007-09-18 10:53:37.000000000 -0400
 @@ -7,6 +7,201 @@
   */
  
@@ -327,8 +329,9 @@
 +#define NL80211_KEYTYPE_MAX (__NL80211_KEYTYPE_AFTER_LAST - 1)
 +
  #endif /* __LINUX_NL80211_H */
---- linux-2.6.22.noarch/include/linux/mod_devicetable.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/mod_devicetable.h	2007-08-30 17:37:10.000000000 -0400
+diff -up linux-2.6.22.noarch/include/linux/mod_devicetable.h.orig linux-2.6.22.noarch/include/linux/mod_devicetable.h
+--- linux-2.6.22.noarch/include/linux/mod_devicetable.h.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/mod_devicetable.h	2007-09-18 10:53:37.000000000 -0400
 @@ -333,4 +333,19 @@ struct parisc_device_id {
  #define PA_HVERSION_ANY_ID	0xffff
  #define PA_SVERSION_ANY_ID	0xffffffff
@@ -349,8 +352,9 @@
 +#define SSB_ANY_REV		0xFF
 +
  #endif /* LINUX_MOD_DEVICETABLE_H */
---- linux-2.6.22.noarch/include/linux/ieee80211.h.orig	2007-08-30 17:36:08.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/ieee80211.h	2007-08-30 17:37:10.000000000 -0400
+diff -up linux-2.6.22.noarch/include/linux/ieee80211.h.orig linux-2.6.22.noarch/include/linux/ieee80211.h
+--- linux-2.6.22.noarch/include/linux/ieee80211.h.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/ieee80211.h	2007-09-18 10:53:37.000000000 -0400
 @@ -106,6 +106,75 @@ struct ieee80211_hdr {
  } __attribute__ ((packed));
  
@@ -649,8 +653,9 @@
 +};
 +
  #endif /* IEEE80211_H */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/include/linux/ssb/ssb_driver_chipcommon.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2007-09-18 10:53:37.000000000 -0400
 @@ -0,0 +1,396 @@
 +#ifndef LINUX_SSB_CHIPCO_H_
 +#define LINUX_SSB_CHIPCO_H_
@@ -1048,8 +1053,9 @@
 +#endif /* CONFIG_SSB_SERIAL */
 +
 +#endif /* LINUX_SSB_CHIPCO_H_ */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_extif.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/include/linux/ssb/ssb_driver_extif.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_extif.h	2007-09-18 10:53:37.000000000 -0400
 @@ -0,0 +1,204 @@
 +/*
 + * Hardware-specific External Interface I/O core definitions
@@ -1255,8 +1261,9 @@
 +
 +#endif /* CONFIG_SSB_DRIVER_EXTIF */
 +#endif /* LINUX_SSB_EXTIFCORE_H_ */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_mips.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/include/linux/ssb/ssb_driver_mips.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_mips.h	2007-09-18 10:53:37.000000000 -0400
 @@ -0,0 +1,46 @@
 +#ifndef LINUX_SSB_MIPSCORE_H_
 +#define LINUX_SSB_MIPSCORE_H_
@@ -1304,8 +1311,9 @@
 +#endif /* CONFIG_SSB_DRIVER_MIPS */
 +
 +#endif /* LINUX_SSB_MIPSCORE_H_ */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_regs.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/include/linux/ssb/ssb_regs.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_regs.h	2007-09-18 10:53:37.000000000 -0400
 @@ -0,0 +1,292 @@
 +#ifndef LINUX_SSB_REGS_H_
 +#define LINUX_SSB_REGS_H_
@@ -1599,8 +1607,9 @@
 +
 +
 +#endif /* LINUX_SSB_REGS_H_ */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_pci.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/include/linux/ssb/ssb_driver_pci.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_pci.h	2007-09-18 10:53:37.000000000 -0400
 @@ -0,0 +1,106 @@
 +#ifndef LINUX_SSB_PCICORE_H_
 +#define LINUX_SSB_PCICORE_H_
@@ -1708,8 +1717,9 @@
 +
 +#endif /* CONFIG_SSB_DRIVER_PCICORE */
 +#endif /* LINUX_SSB_PCICORE_H_ */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/include/linux/ssb/ssb.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/include/linux/ssb/ssb.h	2007-09-18 10:53:37.000000000 -0400
 @@ -0,0 +1,424 @@
 +#ifndef LINUX_SSB_H_
 +#define LINUX_SSB_H_
@@ -2135,8 +2145,9 @@
 +
 +
 +#endif /* LINUX_SSB_H_ */
---- linux-2.6.22.noarch/include/net/cfg80211.h.orig	2007-08-30 17:36:08.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/cfg80211.h	2007-08-30 17:37:10.000000000 -0400
+diff -up linux-2.6.22.noarch/include/net/cfg80211.h.orig linux-2.6.22.noarch/include/net/cfg80211.h
+--- linux-2.6.22.noarch/include/net/cfg80211.h.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/include/net/cfg80211.h	2007-09-18 10:53:37.000000000 -0400
 @@ -3,6 +3,7 @@
  
  #include <linux/netlink.h>
@@ -2279,11 +2290,12 @@
 +			    u32 seq, int flags, u8 cmd);
 +
  #endif /* __NET_CFG80211_H */
---- linux-2.6.22.noarch/include/net/mac80211.h.orig	2007-08-30 17:36:08.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/mac80211.h	2007-08-30 17:37:10.000000000 -0400
-@@ -539,6 +539,9 @@ struct ieee80211_hw {
- 	 * per-packet RC4 key with each TX frame when doing hwcrypto */
- #define IEEE80211_HW_TKIP_REQ_PHASE2_KEY (1<<14)
+diff -up linux-2.6.22.noarch/include/net/mac80211.h.orig linux-2.6.22.noarch/include/net/mac80211.h
+--- linux-2.6.22.noarch/include/net/mac80211.h.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/include/net/mac80211.h	2007-09-18 10:53:37.000000000 -0400
+@@ -563,6 +563,9 @@ struct ieee80211_hw {
+ 	 * specified in the device's EEPROM */
+ #define IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED (1<<11)
  
 +	/* The device capable of supporting 11n */
 +#define IEEE80211_HW_SUPPORT_HT_MODE (1<<15)
@@ -2291,7 +2303,7 @@
  	u32 flags;			/* hardware flags defined above */
  
  	/* Set to the size of a needed device specific skb headroom for TX skbs. */
-@@ -691,8 +694,7 @@ struct ieee80211_ops {
+@@ -708,8 +711,7 @@ struct ieee80211_ops {
  	 * used if the wlan hardware or low-level driver implements PAE.
  	 * 80211.o module will anyway filter frames based on authorization
  	 * state, so this function pointer can be NULL if low-level driver does
@@ -2301,7 +2313,7 @@
  	int (*set_port_auth)(struct ieee80211_hw *hw, u8 *addr,
  			     int authorized);
  
-@@ -752,8 +754,9 @@ struct ieee80211_ops {
+@@ -769,8 +771,9 @@ struct ieee80211_ops {
  	/* Get statistics of the current TX queue status. This is used to get
  	 * number of currently queued packets (queue length), maximum queue
  	 * size (limit), and total number of packets sent using each TX queue
@@ -2313,7 +2325,7 @@
  	int (*get_tx_stats)(struct ieee80211_hw *hw,
  			    struct ieee80211_tx_queue_stats *stats);
  
-@@ -769,6 +772,22 @@ struct ieee80211_ops {
+@@ -786,6 +789,22 @@ struct ieee80211_ops {
  	 * TSF synchronization. */
  	void (*reset_tsf)(struct ieee80211_hw *hw);
  
@@ -2336,8 +2348,9 @@
  	/* Setup beacon data for IBSS beacons. Unlike access point (Master),
  	 * IBSS uses a fixed beacon frame which is configured using this
  	 * function. This handler is required only for IBSS mode. */
---- linux-2.6.22.noarch/include/net/iw_handler.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/iw_handler.h	2007-08-30 17:37:10.000000000 -0400
+diff -up linux-2.6.22.noarch/include/net/iw_handler.h.orig linux-2.6.22.noarch/include/net/iw_handler.h
+--- linux-2.6.22.noarch/include/net/iw_handler.h.orig	2007-09-18 10:53:29.000000000 -0400
++++ linux-2.6.22.noarch/include/net/iw_handler.h	2007-09-18 10:53:37.000000000 -0400
 @@ -431,7 +431,13 @@ struct iw_public_data {
   * Those may be called only within the kernel.
   */
@@ -2353,8 +2366,9 @@
  
  /* Send a single event to user space */
  extern void wireless_send_event(struct net_device *	dev,
---- linux-2.6.22.noarch/MAINTAINERS.orig	2007-08-30 17:36:08.000000000 -0400
-+++ linux-2.6.22.noarch/MAINTAINERS	2007-08-30 17:37:10.000000000 -0400
[...90097 lines suppressed...]
++static void rs_clear(void *priv)
++{
++	return;
 +}
 +
++
 +static void *rs_alloc_sta(void *priv, gfp_t gfp)
 +{
 +	struct iwl_rate_scale_priv *rs_priv;
@@ -121750,11 +130388,6 @@
 +	IWL_DEBUG_RATE("leave\n");
 +}
 +
-+static void rs_clear(void *priv)
-+{
-+	IWL_DEBUG_RATE("NOP\n");
-+}
-+
 +/**
 + * rs_tx_status - Update rate control values based on Tx results
 + *
@@ -122249,8 +130882,7 @@
 +
 +	if (!local->rate_ctrl->ops->name ||
 +	    strcmp(local->rate_ctrl->ops->name, RS_NAME)) {
-+		IWL_WARNING("iwl-3945-rs not selected as rate control "
-+			    "aglo!\n");
++		IWL_WARNING("iwl-3945-rs not selected as rate control algo!\n");
 +		IWL_DEBUG_RATE("leave - mac80211 picked the wrong RC algo.\n");
 +		return;
 +	}
@@ -122304,19 +130936,20 @@
 +		       iwl_rates[rs_priv->start_rate].plcp);
 +}
 +
-+void iwl_rate_control_register(void)
++void iwl_rate_control_register(struct ieee80211_hw *hw)
 +{
 +	ieee80211_rate_control_register(&rs_ops);
 +}
 +
-+void iwl_rate_control_unregister(void)
++void iwl_rate_control_unregister(struct ieee80211_hw *hw)
 +{
 +	ieee80211_rate_control_unregister(&rs_ops);
 +}
 +
 +
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/b43_pci_bridge.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/b43_pci_bridge.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/b43_pci_bridge.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,46 @@
 +/*
 + * Broadcom 43xx PCI-SSB bridge module
@@ -122364,8 +130997,9 @@
 +{
 +	ssb_pcihost_unregister(&b43_pci_bridge_driver);
 +}
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/Makefile	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/Makefile
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/Makefile	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,18 @@
 +# core
 +ssb-y					+= main.o scan.o
@@ -122385,8 +131019,9 @@
 +ssb-$(CONFIG_SSB_PCIHOST)		+= b43_pci_bridge.o
 +
 +obj-$(CONFIG_SSB)			+= ssb.o
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pcmcia.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/pcmcia.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/pcmcia.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,271 @@
 +/*
 + * Sonics Silicon Backplane
@@ -122659,8 +131294,9 @@
 +error:
 +	return -ENODEV;
 +}
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/main.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/main.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/main.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,1162 @@
 +/*
 + * Sonics Silicon Backplane
@@ -123824,8 +132460,9 @@
 +	bus_unregister(&ssb_bustype);
 +}
 +module_exit(ssb_modexit)
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pcihost_wrapper.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/pcihost_wrapper.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/pcihost_wrapper.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,104 @@
 +/*
 + * Sonics Silicon Backplane
@@ -123931,8 +132568,9 @@
 +	return pci_register_driver(driver);
 +}
 +EXPORT_SYMBOL(ssb_pcihost_register);
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_mipscore.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/driver_mipscore.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_mipscore.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,223 @@
 +/*
 + * Sonics Silicon Backplane
@@ -124157,8 +132795,9 @@
 +	ssb_mips_serial_init(mcore);
 +	ssb_mips_flash_detect(mcore);
 +}
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/ssb_private.h	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/ssb_private.h
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/ssb_private.h	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,136 @@
 +#ifndef LINUX_SSB_PRIVATE_H_
 +#define LINUX_SSB_PRIVATE_H_
@@ -124296,8 +132935,9 @@
 +#endif /* CONFIG_SSB_PCIHOST */
 +
 +#endif /* LINUX_SSB_PRIVATE_H_ */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pci.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/pci.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/pci.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,740 @@
 +/*
 + * Sonics Silicon Backplane PCI-Hostbus related functions.
@@ -125039,8 +133679,9 @@
 +out:
 +	return err;
 +}
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_chipcommon.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/driver_chipcommon.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_chipcommon.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,446 @@
 +/*
 + * Sonics Silicon Backplane
@@ -125488,8 +134129,9 @@
 +	return nr_ports;
 +}
 +#endif /* CONFIG_SSB_SERIAL */
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/Kconfig	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/Kconfig
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/Kconfig	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,117 @@
 +menu "Sonics Silicon Backplane"
 +
@@ -125608,8 +134250,9 @@
 +	  If unsure, say N
 +
 +endmenu
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/scan.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/scan.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/scan.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,413 @@
 +/*
 + * Sonics Silicon Backplane
@@ -126024,8 +134667,9 @@
 +	ssb_iounmap(bus);
 +	goto out;
 +}
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_extif.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/driver_extif.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_extif.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,129 @@
 +/*
 + * Sonics Silicon Backplane
@@ -126156,8 +134800,9 @@
 +				   mask, value);
 +}
 +
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_pcicore.c	2007-08-30 17:37:10.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/ssb/driver_pcicore.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/ssb/driver_pcicore.c	2007-09-18 10:53:38.000000000 -0400
 @@ -0,0 +1,576 @@
 +/*
 + * Sonics Silicon Backplane


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/kernel-2.6.spec,v
retrieving revision 1.3341
retrieving revision 1.3342
diff -u -r1.3341 -r1.3342
--- kernel-2.6.spec	13 Sep 2007 22:21:49 -0000	1.3341
+++ kernel-2.6.spec	18 Sep 2007 15:08:25 -0000	1.3342
@@ -613,9 +613,8 @@
 Patch682: linux-2.6-wireless-pending.patch
 Patch683: linux-2.6-bcm43xx-pci-neuter.patch
 Patch690: git-wireless-dev.patch
-Patch700: linux-2.6-iwlwifi-fw-name-compat.patch
-Patch701: linux-2.6-b43-module-alias.patch
-Patch702: linux-2.6-b43-use-old-fw.patch
+Patch700: linux-2.6-b43-module-alias.patch
+Patch701: linux-2.6-b43-use-old-fw.patch
 Patch710: linux-2.6-e1000-ich9.patch
 Patch711: linux-2.6-netdev-forcedeth-realtek-oui.patch
 Patch713: linux-2.6-net-atl1-fix-typo-in-dma-setup.patch
@@ -1345,8 +1344,6 @@
 
 # Add wireless stack and driver updates from wireless-dev
 ApplyPatch git-wireless-dev.patch
-# temp compat patch for iwlwifi firmware filenames
-ApplyPatch linux-2.6-iwlwifi-fw-name-compat.patch
 # avoid bcm3xx vs bcm43xx-mac80211 PCI ID conflicts
 ApplyPatch linux-2.6-bcm43xx-pci-neuter.patch
 # add module alias for "bcm43xx-mac80211"
@@ -2351,6 +2348,9 @@
 %endif
 
 %changelog
+* Tue Sep 18 2007 John W. Linville <linville at redhat.com>
+- Update bits from wireless-2.6 and wireless-dev
+
 * Wed Sep 12 2007 Chuck Ebbert <cebbert at redhat.com>
 - Linux 2.6.22.6 (official)
 - libata: add option to disable DMA on PATA devices

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.2 -r 1.3 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/linux-2.6-wireless-pending.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-wireless-pending.patch	30 Aug 2007 21:54:14 -0000	1.2
+++ linux-2.6-wireless-pending.patch	18 Sep 2007 15:08:25 -0000	1.3
@@ -1,5 +1,6 @@
---- linux-2.6.22.noarch/include/net/mac80211.h.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/mac80211.h	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/include/net/mac80211.h.orig linux-2.6.22.noarch/include/net/mac80211.h
+--- linux-2.6.22.noarch/include/net/mac80211.h.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/include/net/mac80211.h	2007-09-18 10:29:55.000000000 -0400
 @@ -1,7 +1,9 @@
  /*
 - * Low-level hardware driver -- IEEE 802.11 driver (80211.o) interface
@@ -11,10 +12,49 @@
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
-@@ -192,13 +194,19 @@ struct ieee80211_tx_control {
+@@ -71,14 +73,13 @@ struct ieee80211_channel {
+ #define IEEE80211_RATE_SUPPORTED 0x00000010
+ #define IEEE80211_RATE_OFDM 0x00000020
+ #define IEEE80211_RATE_CCK 0x00000040
+-#define IEEE80211_RATE_TURBO 0x00000080
+ #define IEEE80211_RATE_MANDATORY 0x00000100
+ 
+ #define IEEE80211_RATE_CCK_2 (IEEE80211_RATE_CCK | IEEE80211_RATE_PREAMBLE2)
+ #define IEEE80211_RATE_MODULATION(f) \
+ 	(f & (IEEE80211_RATE_CCK | IEEE80211_RATE_OFDM))
+ 
+-/* Low-level driver should set PREAMBLE2, OFDM, CCK, and TURBO flags.
++/* Low-level driver should set PREAMBLE2, OFDM and CCK flags.
+  * BASIC, SUPPORTED, ERP, and MANDATORY flags are set in 80211.o based on the
+  * configuration. */
+ struct ieee80211_rate {
+@@ -99,12 +100,10 @@ struct ieee80211_rate {
+ 
+ /* 802.11g is backwards-compatible with 802.11b, so a wlan card can
+  * actually be both in 11b and 11g modes at the same time. */
+-enum {
++enum ieee80211_phymode {
+ 	MODE_IEEE80211A, /* IEEE 802.11a */
+ 	MODE_IEEE80211B, /* IEEE 802.11b only */
+-	MODE_ATHEROS_TURBO, /* Atheros Turbo mode (2x.11a at 5 GHz) */
+ 	MODE_IEEE80211G, /* IEEE 802.11g (and 802.11b compatibility) */
+-	MODE_ATHEROS_TURBOG, /* Atheros Turbo mode (2x.11g at 2.4 GHz) */
+ 
+ 	/* keep last */
+ 	NUM_IEEE80211_MODES
+@@ -165,7 +164,6 @@ struct ieee80211_low_level_stats {
+ /* Transmit control fields. This data structure is passed to low-level driver
+  * with each TX frame. The low-level driver is responsible for configuring
+  * the hardware to use given values (depending on what is supported). */
+-#define HW_KEY_IDX_INVALID -1
+ 
+ struct ieee80211_tx_control {
+ 	int tx_rate; /* Transmit rate, given as the hw specific value for the
+@@ -191,17 +189,21 @@ struct ieee80211_tx_control {
+ #define IEEE80211_TXCTL_REQUEUE		(1<<7)
  #define IEEE80211_TXCTL_FIRST_FRAGMENT	(1<<8) /* this is a first fragment of
  						* the frame */
- #define IEEE80211_TXCTL_TKIP_NEW_PHASE1_KEY (1<<9)
+-#define IEEE80211_TXCTL_TKIP_NEW_PHASE1_KEY (1<<9)
 +#define IEEE80211_TXCTL_LONG_RETRY_LIMIT (1<<10) /* this frame should be send
 +						  * using the through
 +						  * set_retry_limit configured
@@ -22,6 +62,8 @@
  	u32 flags;			       /* tx control flags defined
  						* above */
 -	u8 retry_limit;		/* 1 = only first attempt, 2 = one retry, .. */
++	u8 key_idx;		/* keyidx from hw->set_key(), undefined if
++				 * IEEE80211_TXCTL_DO_NOT_ENCRYPT is set */
 +	u8 retry_limit;		/* 1 = only first attempt, 2 = one retry, ..
 +				 * This could be used when set_retry_limit
 +				 * is not implemented by the driver */
@@ -29,12 +71,78 @@
  	u8 antenna_sel_tx; 	/* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */
 -	s8 key_idx;		/* -1 = do not encrypt, >= 0 keyidx from
 -				 * hw->set_key() */
-+	s8 key_idx;		/* HW_KEY_IDX_INVALID = do not encrypt,
-+				 * other values: keyidx from hw->set_key() */
  	u8 icv_len;		/* length of the ICV/MIC field in octets */
  	u8 iv_len;		/* length of the IV field in octets */
- 	u8 tkip_key[16];	/* generated phase2/phase1 key for hw TKIP */
-@@ -288,28 +296,10 @@ struct ieee80211_conf {
+-	u8 tkip_key[16];	/* generated phase2/phase1 key for hw TKIP */
+ 	u8 queue;		/* hardware queue to use for this frame;
+ 				 * 0 = highest, hw->queues-1 = lowest */
+ 	u8 sw_retry_attempt;	/* number of times hw has tried to
+@@ -219,22 +221,56 @@ struct ieee80211_tx_control {
+ 	int ifindex;	/* internal */
+ };
+ 
+-/* Receive status. The low-level driver should provide this information
+- * (the subset supported by hardware) to the 802.11 code with each received
+- * frame. */
++
++/**
++ * enum mac80211_rx_flags - receive flags
++ *
++ * These flags are used with the @flag member of &struct ieee80211_rx_status.
++ * @RX_FLAG_MMIC_ERROR: Michael MIC error was reported on this frame.
++ *	Use together with %RX_FLAG_MMIC_STRIPPED.
++ * @RX_FLAG_DECRYPTED: This frame was decrypted in hardware.
++ * @RX_FLAG_RADIOTAP: This frame starts with a radiotap header.
++ * @RX_FLAG_MMIC_STRIPPED: the Michael MIC is stripped off this frame,
++ *	verification has been done by the hardware.
++ * @RX_FLAG_IV_STRIPPED: The IV/ICV are stripped from this frame.
++ *	If this flag is set, the stack cannot do any replay detection
++ *	hence the driver or hardware will have to do that.
++ */
++enum mac80211_rx_flags {
++	RX_FLAG_MMIC_ERROR	= 1<<0,
++	RX_FLAG_DECRYPTED	= 1<<1,
++	RX_FLAG_RADIOTAP	= 1<<2,
++	RX_FLAG_MMIC_STRIPPED	= 1<<3,
++	RX_FLAG_IV_STRIPPED	= 1<<4,
++};
++
++/**
++ * struct ieee80211_rx_status - receive status
++ *
++ * The low-level driver should provide this information (the subset
++ * supported by hardware) to the 802.11 code with each received
++ * frame.
++ * @mactime: MAC timestamp as defined by 802.11
++ * @freq: frequency the radio was tuned to when receiving this frame, in MHz
++ * @channel: channel the radio was tuned to
++ * @phymode: active PHY mode
++ * @ssi: signal strength when receiving this frame
++ * @signal: used as 'qual' in statistics reporting
++ * @noise: PHY noise when receiving this frame
++ * @antenna: antenna used
++ * @rate: data rate
++ * @flag: %RX_FLAG_*
++ */
+ struct ieee80211_rx_status {
+ 	u64 mactime;
+-	int freq; /* receive frequency in Mhz */
++	int freq;
+ 	int channel;
+ 	int phymode;
+ 	int ssi;
+-	int signal; /* used as qual in statistics reporting */
++	int signal;
+ 	int noise;
+ 	int antenna;
+ 	int rate;
+-#define RX_FLAG_MMIC_ERROR	(1<<0)
+-#define RX_FLAG_DECRYPTED	(1<<1)
+-#define RX_FLAG_RADIOTAP	(1<<2)
+ 	int flag;
+ };
+ 
+@@ -288,28 +324,10 @@ struct ieee80211_conf {
  	u8 power_level;			/* transmit power limit for current
  					 * regulatory domain; in dBm */
  	u8 antenna_max;			/* maximum antenna gain */
@@ -63,39 +171,69 @@
  };
  
  /**
-@@ -402,29 +392,41 @@ struct ieee80211_if_conf {
+@@ -402,40 +420,86 @@ struct ieee80211_if_conf {
  	struct ieee80211_tx_control *beacon_control;
  };
  
 -typedef enum { ALG_NONE, ALG_WEP, ALG_TKIP, ALG_CCMP, ALG_NULL }
 -ieee80211_key_alg;
-+typedef enum {
++/**
++ * enum ieee80211_key_alg - key algorithm
++ * @ALG_NONE: Unset key algorithm, will never be passed to the driver
++ * @ALG_WEP: WEP40 or WEP104
++ * @ALG_TKIP: TKIP
++ * @ALG_CCMP: CCMP (AES)
++ */
++typedef enum ieee80211_key_alg {
 +	ALG_NONE,
 +	ALG_WEP,
 +	ALG_TKIP,
 +	ALG_CCMP,
 +} ieee80211_key_alg;
  
-+/*
-+ * This flag indiciates that the station this key is being
-+ * configured for may use QoS. If your hardware cannot handle
-+ * that situation it should reject that key.
-+ */
-+#define IEEE80211_KEY_FLAG_WMM_STA	(1<<0)
  
- struct ieee80211_key_conf {
-+	/*
-+	 * To be set by the driver to the key index it would like to
-+	 * get in the ieee80211_tx_control.key_idx which defaults
-+	 * to HW_KEY_IDX_INVALID so that shouldn't be used.
-+	 */
[...4085 lines suppressed...]
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/tx.c.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/tx.c
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/tx.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/tx.c	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/tx.c	2007-09-18 10:29:46.000000000 -0400
 @@ -58,7 +58,6 @@ static u32 convert_radiotap_rate_to_mv(u
   */
  static int SendSinglePacket(wlan_private * priv, struct sk_buff *skb)
@@ -24651,8 +25194,9 @@
  	}
  }
  EXPORT_SYMBOL_GPL(libertas_send_tx_feedback);
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/if_cs.c	2007-08-30 17:32:02.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/net/wireless/libertas/if_cs.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/if_cs.c	2007-09-18 10:29:46.000000000 -0400
 @@ -0,0 +1,961 @@
 +/*
 +
@@ -25615,8 +26159,9 @@
 +
 +module_init(if_cs_init);
 +module_exit(if_cs_exit);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/thread.h.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/thread.h
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/thread.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/thread.h	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/thread.h	2007-09-18 10:29:46.000000000 -0400
 @@ -1,52 +0,0 @@
 -#ifndef	__WLAN_THREAD_H_
 -#define	__WLAN_THREAD_H_
@@ -25670,8 +26215,9 @@
 -}
 -
 -#endif
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/if_usb.h.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/if_usb.h
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/if_usb.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/if_usb.h	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/if_usb.h	2007-09-18 10:29:46.000000000 -0400
 @@ -38,7 +38,7 @@ struct bootcmdrespStr
  
  /* read callback private data */
@@ -25706,8 +26252,9 @@
 -int if_usb_issue_boot_command(wlan_private *priv, int ivalue);
 -
  #endif
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/ethtool.c.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/ethtool.c
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/ethtool.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/ethtool.c	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/ethtool.c	2007-09-18 10:29:46.000000000 -0400
 @@ -60,8 +60,7 @@ static int libertas_ethtool_get_eeprom(s
  
  //      mutex_lock(&priv->mutex);
@@ -25741,8 +26288,9 @@
  
  	if (ret) {
  		ret = 0;
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/decl.h.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/decl.h
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/decl.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/decl.h	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/decl.h	2007-09-18 10:29:46.000000000 -0400
 @@ -15,14 +15,9 @@ struct wlan_private;
  struct sk_buff;
  struct net_device;
@@ -25799,8 +26347,9 @@
 +int libertas_reset_device(wlan_private *priv);
  
  #endif				/* _WLAN_DECL_H_ */
---- linux-2.6.22.noarch/drivers/net/wireless/rtl8187.h.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/rtl8187.h	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/drivers/net/wireless/rtl8187.h.orig linux-2.6.22.noarch/drivers/net/wireless/rtl8187.h
+--- linux-2.6.22.noarch/drivers/net/wireless/rtl8187.h.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/rtl8187.h	2007-09-18 10:29:46.000000000 -0400
 @@ -67,6 +67,7 @@ struct rtl8187_priv {
  	struct rtl818x_csr *map;
  	void (*rf_init)(struct ieee80211_hw *);
@@ -25809,8 +26358,9 @@
  
  	/* rtl8187 specific */
  	struct ieee80211_channel channels[14];
---- linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c
+--- linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2007-09-18 10:29:46.000000000 -0400
 @@ -1753,7 +1753,7 @@ prism54_get_oid(struct net_device *ndev,
  	int rvalue;
  	enum oid_num_t n = dwrq->flags;
@@ -25838,8 +26388,9 @@
  }
  
  void
+diff -up linux-2.6.22.noarch/drivers/net/wireless/prism54/oid_mgt.c.orig linux-2.6.22.noarch/drivers/net/wireless/prism54/oid_mgt.c
 --- linux-2.6.22.noarch/drivers/net/wireless/prism54/oid_mgt.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/prism54/oid_mgt.c	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/oid_mgt.c	2007-09-18 10:29:46.000000000 -0400
 @@ -244,13 +244,11 @@ mgt_init(islpci_private *priv)
  	/* Alloc the cache */
  	for (i = 0; i < OID_NUM_LAST; i++) {
@@ -25855,8 +26406,9 @@
  		} else
  			priv->mib[i] = NULL;
  	}
---- linux-2.6.22.noarch/drivers/net/wireless/Kconfig.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/Kconfig	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.22.noarch/drivers/net/wireless/Kconfig
+--- linux-2.6.22.noarch/drivers/net/wireless/Kconfig.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/Kconfig	2007-09-18 10:29:46.000000000 -0400
 @@ -63,11 +63,6 @@ config WAVELAN
  	  a Radio LAN (wireless Ethernet-like Local Area Network) using the
  	  radio frequencies 900 MHz and 2.4 GHz.
@@ -25991,8 +26543,9 @@
  config PCMCIA_WL3501
        tristate "Planet WL3501 PCMCIA cards"
        depends on EXPERIMENTAL && PCMCIA && WLAN_80211
---- linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c.orig linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c
+--- linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c	2007-09-18 10:29:46.000000000 -0400
 @@ -859,7 +859,7 @@ static int wl3501_esbq_confirm(struct wl
  
  static void wl3501_online(struct net_device *dev)
@@ -26297,8 +26850,30 @@
  	if (link->open) {
  		wl3501_reset(dev);
  		netif_device_attach(dev);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c.orig linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+--- linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c	2007-09-18 10:30:24.000000000 -0400
+@@ -2380,7 +2380,7 @@ static int bcm43xx_chip_init(struct bcm4
+ 		goto err_gpio_cleanup;
+ 	bcm43xx_radio_turn_on(bcm);
+ 	bcm->radio_hw_enable = bcm43xx_is_hw_radio_enabled(bcm);
+-	dprintk(KERN_INFO PFX "Radio %s by hardware\n",
++	printk(KERN_INFO PFX "Radio %s by hardware\n",
+ 		(bcm->radio_hw_enable == 0) ? "disabled" : "enabled");
+ 
+ 	bcm43xx_write16(bcm, 0x03E6, 0x0000);
+@@ -3129,7 +3129,7 @@ static void bcm43xx_periodic_every1sec(s
+ 	radio_hw_enable = bcm43xx_is_hw_radio_enabled(bcm);
+ 	if (unlikely(bcm->radio_hw_enable != radio_hw_enable)) {
+ 		bcm->radio_hw_enable = radio_hw_enable;
+-		dprintk(KERN_INFO PFX "Radio hardware status changed to %s\n",
++		printk(KERN_INFO PFX "Radio hardware status changed to %s\n",
+ 		       (radio_hw_enable == 0) ? "disabled" : "enabled");
+ 		bcm43xx_leds_update(bcm, 0);
+ 	}
+diff -up linux-2.6.22.noarch/drivers/net/wireless/arlan-proc.c.orig linux-2.6.22.noarch/drivers/net/wireless/arlan-proc.c
 --- linux-2.6.22.noarch/drivers/net/wireless/arlan-proc.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/arlan-proc.c	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/arlan-proc.c	2007-09-18 10:29:46.000000000 -0400
 @@ -435,7 +435,7 @@ static int arlan_sysctl_info(ctl_table *
  		goto final;
  	}
@@ -26362,8 +26937,9 @@
  		arlan_command(arlan_device[devnum], ARLAN_COMMAND_CLEAN_AND_RESET);
  
  	} else
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h	2007-09-18 10:29:46.000000000 -0400
 @@ -3,6 +3,7 @@
  
  #include <linux/wireless.h>
@@ -26381,8 +26957,9 @@
  	u16 infofid; /* MAC buffer id for info frame */
  	/* txfid, intransmitfid, next_txtid, and next_alloc are protected by
  	 * txfidlock */
---- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c
+--- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-09-18 10:29:46.000000000 -0400
 @@ -272,7 +272,7 @@ static int sandisk_enable_wireless(struc
  {
  	int res, ret = 0;
@@ -26392,8 +26969,9 @@
  	local_info_t *local = iface->local;
  	tuple_t tuple;
  	cisparse_t *parse = NULL;
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c	2007-08-30 17:32:02.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c	2007-09-18 10:29:46.000000000 -0400
 @@ -825,7 +825,7 @@ static int hfa384x_get_rid(struct net_de
  	    local->hw_downloading)
  		return -ENODEV;
@@ -26463,8 +27041,9 @@
  	local = iface->local;
  
  	/* Send disconnect event, e.g., to trigger reassociation after resume
---- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2007-08-30 17:28:10.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-08-30 17:32:02.000000000 -0400
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c
+--- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2007-09-18 10:28:11.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-09-18 10:29:46.000000000 -0400
 @@ -3088,7 +3088,7 @@ static int prism2_ioctl_priv_download(lo
  static int prism2_set_genericelement(struct net_device *dev, u8 *elem,
  				     size_t len)

linux-2.6-wireless.patch:

Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-7/linux-2.6-wireless.patch,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- linux-2.6-wireless.patch	30 Aug 2007 21:54:14 -0000	1.9
+++ linux-2.6-wireless.patch	18 Sep 2007 15:08:25 -0000	1.10
@@ -1,5 +1,6 @@
+diff -up linux-2.6.22.noarch/include/linux/ieee80211.h.orig linux-2.6.22.noarch/include/linux/ieee80211.h
 --- linux-2.6.22.noarch/include/linux/ieee80211.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/ieee80211.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/ieee80211.h	2007-09-18 10:10:25.000000000 -0400
 @@ -227,6 +227,17 @@ struct ieee80211_cts {
  #define WLAN_CAPABILITY_SHORT_SLOT_TIME	(1<<10)
  #define WLAN_CAPABILITY_DSSS_OFDM	(1<<13)
@@ -18,8 +19,9 @@
  /* Status codes */
  enum ieee80211_statuscode {
  	WLAN_STATUS_SUCCESS = 0,
+diff -up linux-2.6.22.noarch/include/net/cfg80211.h.orig linux-2.6.22.noarch/include/net/cfg80211.h
 --- linux-2.6.22.noarch/include/net/cfg80211.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/cfg80211.h	2007-08-30 17:22:48.000000000 -0400
++++ linux-2.6.22.noarch/include/net/cfg80211.h	2007-09-18 10:10:25.000000000 -0400
 @@ -11,6 +11,44 @@
   * Copyright 2006 Johannes Berg <johannes at sipsolutions.net>
   */
@@ -65,8 +67,9 @@
  /* from net/wireless.h */
  struct wiphy;
  
+diff -up linux-2.6.22.noarch/include/net/mac80211.h.orig linux-2.6.22.noarch/include/net/mac80211.h
 --- linux-2.6.22.noarch/include/net/mac80211.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/mac80211.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/include/net/mac80211.h	2007-09-18 10:10:25.000000000 -0400
 @@ -347,9 +347,16 @@ enum ieee80211_if_types {
   * @mac_addr: pointer to MAC address of the interface. This pointer is valid
   *	until the interface is removed (i.e. it cannot be used after
@@ -113,8 +116,9 @@
  /* Given an sk_buff with a raw 802.11 header at the data pointer this function
   * returns the 802.11 header length in bytes (not including encryption
   * headers). If the data in the sk_buff is too short to contain a valid 802.11
+diff -up linux-2.6.22.noarch/net/ieee80211/ieee80211_wx.c.orig linux-2.6.22.noarch/net/ieee80211/ieee80211_wx.c
 --- linux-2.6.22.noarch/net/ieee80211/ieee80211_wx.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/ieee80211/ieee80211_wx.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/ieee80211/ieee80211_wx.c	2007-09-18 10:10:25.000000000 -0400
 @@ -90,14 +90,11 @@ static char *ieee80211_translate_scan(st
  	}
  
@@ -132,8 +136,9 @@
  	start = iwe_stream_add_event(start, stop, &iwe, IW_EV_FREQ_LEN);
  
  	/* Add encryption capability */
---- linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c.orig	2007-08-30 17:18:45.000000000 -0400
-+++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c	2007-08-30 17:19:20.000000000 -0400
+diff -up linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c.orig linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c
+--- linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c.orig	2007-09-18 10:09:24.000000000 -0400
++++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c	2007-09-18 10:10:25.000000000 -0400
 @@ -271,8 +271,11 @@ ieee80211softmac_assoc_work(struct work_
  			 */
  			dprintk(KERN_INFO PFX "Associate: Scanning for networks first.\n");
@@ -147,8 +152,9 @@
  			goto out;
  		} else {
  			mac->associnfo.associating = 0;
+diff -up linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_module.c.orig linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_module.c
 --- linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_module.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_module.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_module.c	2007-09-18 10:10:25.000000000 -0400
 @@ -456,18 +456,13 @@ void
  ieee80211softmac_add_network_locked(struct ieee80211softmac_device *mac,
  	struct ieee80211softmac_network *add_net)
@@ -208,8 +214,9 @@
  		if (softmac_net->essid.len == essid->len &&
  			!memcmp(softmac_net->essid.data, essid->data, essid->len))
  			return softmac_net;
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211_iface.c.orig linux-2.6.22.noarch/net/mac80211/ieee80211_iface.c
 --- linux-2.6.22.noarch/net/mac80211/ieee80211_iface.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211_iface.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_iface.c	2007-09-18 10:10:25.000000000 -0400
 @@ -157,6 +157,8 @@ void ieee80211_if_set_type(struct net_de
  	struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
  	int oldtype = sdata->type;
@@ -227,8 +234,9 @@
  		break;
  	default:
  		printk(KERN_WARNING "%s: %s: Unknown interface type 0x%x",
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c.orig linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c
 --- linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c	2007-09-18 10:10:25.000000000 -0400
 @@ -27,20 +27,6 @@
  #include "aes_ccm.h"
  #include "debugfs_key.h"
@@ -739,8 +747,9 @@
  	(iw_handler) ieee80211_ioctl_siwrts,		/* SIOCSIWRTS */
  	(iw_handler) ieee80211_ioctl_giwrts,		/* SIOCGIWRTS */
  	(iw_handler) ieee80211_ioctl_siwfrag,		/* SIOCSIWFRAG */
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211_rate.c.orig linux-2.6.22.noarch/net/mac80211/ieee80211_rate.c
 --- linux-2.6.22.noarch/net/mac80211/ieee80211_rate.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211_rate.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_rate.c	2007-09-18 10:10:25.000000000 -0400
 @@ -24,11 +24,10 @@ int ieee80211_rate_control_register(stru
  {
  	struct rate_control_alg *alg;
@@ -754,8 +763,9 @@
  	alg->ops = ops;
  
  	mutex_lock(&rate_ctrl_mutex);
+diff -up linux-2.6.22.noarch/net/mac80211/Makefile.orig linux-2.6.22.noarch/net/mac80211/Makefile
 --- linux-2.6.22.noarch/net/mac80211/Makefile.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/Makefile	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/Makefile	2007-09-18 10:10:25.000000000 -0400
 @@ -13,6 +13,7 @@ mac80211-objs := \
  	ieee80211_iface.o \
  	ieee80211_rate.o \
@@ -764,8 +774,9 @@
  	tkip.o \
  	aes_ccm.o \
  	wme.o \
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/net/mac80211/regdomain.c	2007-08-30 17:19:20.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/net/mac80211/regdomain.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/net/mac80211/regdomain.c	2007-09-18 10:10:25.000000000 -0400
 @@ -0,0 +1,158 @@
 +/*
 + * Copyright 2002-2005, Instant802 Networks, Inc.
@@ -925,8 +936,9 @@
 +		channel_range = ieee80211_mkk_channels;
 +}
 +
+diff -up linux-2.6.22.noarch/net/mac80211/hostapd_ioctl.h.orig linux-2.6.22.noarch/net/mac80211/hostapd_ioctl.h
 --- linux-2.6.22.noarch/net/mac80211/hostapd_ioctl.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/hostapd_ioctl.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/hostapd_ioctl.h	2007-09-18 10:10:25.000000000 -0400
 @@ -26,24 +26,16 @@
   * mess shall be deleted completely. */
  enum {
@@ -952,8 +964,9 @@
  	PRISM2_PARAM_TX_POWER_REDUCTION = 1022,
  	PRISM2_PARAM_KEY_TX_RX_THRESHOLD = 1024,
  	PRISM2_PARAM_DEFAULT_WEP_ONLY = 1026,
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211_common.h.orig linux-2.6.22.noarch/net/mac80211/ieee80211_common.h
 --- linux-2.6.22.noarch/net/mac80211/ieee80211_common.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211_common.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_common.h	2007-09-18 10:10:25.000000000 -0400
 @@ -47,21 +47,16 @@ enum ieee80211_msg_type {
  	ieee80211_msg_normal = 0,
  	ieee80211_msg_tx_callback_ack = 1,
@@ -978,8 +991,9 @@
  struct ieee80211_msg_key_notification {
  	int tx_rx_count;
  	char ifname[IFNAMSIZ];
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211.c.orig linux-2.6.22.noarch/net/mac80211/ieee80211.c
 --- linux-2.6.22.noarch/net/mac80211/ieee80211.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211.c	2007-08-30 17:26:39.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211.c	2007-09-18 10:11:06.000000000 -0400
 @@ -24,6 +24,7 @@
  #include <linux/compiler.h>
  #include <linux/bitmap.h>
@@ -1663,8 +1677,30 @@
  
  	return 0;
  }
+@@ -4981,7 +5259,7 @@ static void __exit ieee80211_exit(void)
+ }
+ 
+ 
+-module_init(ieee80211_init);
++subsys_initcall(ieee80211_init);
+ module_exit(ieee80211_exit);
+ 
+ MODULE_DESCRIPTION("IEEE 802.11 subsystem");
+diff -up linux-2.6.22.noarch/net/mac80211/wme.c.orig linux-2.6.22.noarch/net/mac80211/wme.c
+--- linux-2.6.22.noarch/net/mac80211/wme.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/wme.c	2007-09-18 10:11:06.000000000 -0400
+@@ -424,7 +424,7 @@ static int wme_qdiscop_init(struct Qdisc
+ 		skb_queue_head_init(&q->requeued[i]);
+ 		q->queues[i] = qdisc_create_dflt(qd->dev, &pfifo_qdisc_ops,
+ 						 qd->handle);
+-		if (q->queues[i] == 0) {
++		if (!q->queues[i]) {
+ 			q->queues[i] = &noop_qdisc;
+ 			printk(KERN_ERR "%s child qdisc %i creation failed", dev->name, i);
+ 		}
+diff -up linux-2.6.22.noarch/net/mac80211/rc80211_simple.c.orig linux-2.6.22.noarch/net/mac80211/rc80211_simple.c
 --- linux-2.6.22.noarch/net/mac80211/rc80211_simple.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/rc80211_simple.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/rc80211_simple.c	2007-09-18 10:11:06.000000000 -0400
 @@ -187,9 +187,13 @@ static void rate_control_simple_tx_statu
  		}
  #endif
@@ -1703,8 +1739,18 @@
  	}
  }
  
+@@ -425,7 +431,7 @@ static void __exit rate_control_simple_e
+ }
+ 
+ 
+-module_init(rate_control_simple_init);
++subsys_initcall(rate_control_simple_init);
+ module_exit(rate_control_simple_exit);
+ 
+ MODULE_DESCRIPTION("Simple rate control algorithm for ieee80211");
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211_i.h.orig linux-2.6.22.noarch/net/mac80211/ieee80211_i.h
 --- linux-2.6.22.noarch/net/mac80211/ieee80211_i.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211_i.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_i.h	2007-09-18 10:10:25.000000000 -0400
 @@ -99,6 +99,12 @@ struct ieee80211_sta_bss {
  	int probe_resp;
  	unsigned long last_update;
@@ -1787,8 +1833,9 @@
  /* for wiphy privid */
  extern void *mac80211_wiphy_privid;
  
+diff -up linux-2.6.22.noarch/net/mac80211/ieee80211_sta.c.orig linux-2.6.22.noarch/net/mac80211/ieee80211_sta.c
 --- linux-2.6.22.noarch/net/mac80211/ieee80211_sta.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/ieee80211_sta.c	2007-08-30 17:26:39.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_sta.c	2007-09-18 10:10:25.000000000 -0400
 @@ -25,7 +25,6 @@
  #include <linux/wireless.h>
  #include <linux/random.h>
@@ -2026,8 +2073,9 @@
  	return -1;
  }
  
+diff -up linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c.orig linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c
 --- linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c	2007-09-18 10:10:25.000000000 -0400
 @@ -118,7 +118,7 @@ static ssize_t ieee80211_if_fmt_flags(
  			 sdata->u.sta.authenticated ? "AUTH\n" : "",
  			 sdata->u.sta.associated ? "ASSOC\n" : "",
@@ -2076,16 +2124,18 @@
  
  	return 0;
  }
+diff -up linux-2.6.22.noarch/net/wireless/Makefile.orig linux-2.6.22.noarch/net/wireless/Makefile
 --- linux-2.6.22.noarch/net/wireless/Makefile.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/wireless/Makefile	2007-08-30 17:21:45.000000000 -0400
++++ linux-2.6.22.noarch/net/wireless/Makefile	2007-09-18 10:10:25.000000000 -0400
 @@ -1,4 +1,4 @@
  obj-$(CONFIG_WIRELESS_EXT) += wext.o
  obj-$(CONFIG_CFG80211) += cfg80211.o
  
 -cfg80211-y += core.o sysfs.o
 +cfg80211-y += core.o sysfs.o radiotap.o
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/net/wireless/radiotap.c	2007-08-30 17:21:49.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/net/wireless/radiotap.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/net/wireless/radiotap.c	2007-09-18 10:10:25.000000000 -0400
 @@ -0,0 +1,257 @@
 +/*
 + * Radiotap parser
@@ -2344,8 +2394,39 @@
 +	return -ENOENT;
 +}
 +EXPORT_SYMBOL(ieee80211_radiotap_iterator_next);
+diff -up linux-2.6.22.noarch/net/wireless/core.c.orig linux-2.6.22.noarch/net/wireless/core.c
+--- linux-2.6.22.noarch/net/wireless/core.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/net/wireless/core.c	2007-09-18 10:11:06.000000000 -0400
+@@ -213,7 +213,7 @@ out_fail_notifier:
+ out_fail_sysfs:
+ 	return err;
+ }
+-module_init(cfg80211_init);
++subsys_initcall(cfg80211_init);
+ 
+ static void cfg80211_exit(void)
+ {
+diff -up linux-2.6.22.noarch/net/wireless/sysfs.c.orig linux-2.6.22.noarch/net/wireless/sysfs.c
+--- linux-2.6.22.noarch/net/wireless/sysfs.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/net/wireless/sysfs.c	2007-09-18 10:11:06.000000000 -0400
+@@ -52,12 +52,14 @@ static void wiphy_dev_release(struct dev
+ 	cfg80211_dev_free(rdev);
+ }
+ 
++#ifdef CONFIG_HOTPLUG
+ static int wiphy_uevent(struct device *dev, char **envp,
+ 			int num_envp, char *buf, int size)
+ {
+ 	/* TODO, we probably need stuff here */
+ 	return 0;
+ }
++#endif
+ 
+ struct class ieee80211_class = {
+ 	.name = "ieee80211",
+diff -up linux-2.6.22.noarch/drivers/net/wireless/airo.c.orig linux-2.6.22.noarch/drivers/net/wireless/airo.c
 --- linux-2.6.22.noarch/drivers/net/wireless/airo.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/airo.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/airo.c	2007-09-18 10:10:25.000000000 -0400
 @@ -52,6 +52,8 @@
  
  #include "airo.h"
@@ -2961,8 +3042,9 @@
  			return -EIO;
  		return 0;
  
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.c	2007-09-18 10:10:25.000000000 -0400
 @@ -49,8 +49,9 @@ void zd_chip_clear(struct zd_chip *chip)
  	ZD_MEMCLEAR(chip, sizeof(*chip));
  }
@@ -3143,8 +3225,9 @@
  		return 0;
  
  	ZD_ASSERT(mutex_is_locked(&chip->mutex));
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/Makefile.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/Makefile
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/Makefile.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/Makefile	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/Makefile	2007-09-18 10:10:25.000000000 -0400
 @@ -3,7 +3,7 @@ obj-$(CONFIG_ZD1211RW) += zd1211rw.o
  zd1211rw-objs := zd_chip.o zd_ieee80211.o \
  		zd_mac.o zd_netdev.o \
@@ -3154,8 +3237,9 @@
  		zd_rf.o zd_usb.o zd_util.o
  
  ifeq ($(CONFIG_ZD1211RW_DEBUG),y)
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.h.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.h
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.h	2007-09-18 10:10:25.000000000 -0400
 @@ -26,7 +26,7 @@
  #define AL2210_RF			0x7
  #define MAXIM_NEW_RF			0x8
@@ -3217,8 +3301,9 @@
 +int zd_rf_init_uw2453(struct zd_rf *rf);
  
  #endif /* _ZD_RF_H */
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.h.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.h
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.h	2007-09-18 10:10:25.000000000 -0400
 @@ -608,6 +608,9 @@ enum {
  #define CR_ZD1211B_TXOP			CTL_REG(0x0b20)
  #define CR_ZD1211B_RETRY_MAX		CTL_REG(0x0b28)
@@ -3272,8 +3357,9 @@
  int zd_write_mac_addr(struct zd_chip *chip, const u8 *mac_addr);
  int zd_chip_switch_radio_on(struct zd_chip *chip);
  int zd_chip_switch_radio_off(struct zd_chip *chip);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al2230.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al2230.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al2230.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al2230.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al2230.c	2007-09-18 10:10:25.000000000 -0400
 @@ -21,6 +21,8 @@
  #include "zd_usb.h"
  #include "zd_chip.h"
@@ -3335,8 +3421,9 @@
 +	rf->patch_cck_gain = 1;
  	return 0;
  }
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_rf2959.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_rf2959.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_rf2959.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_rf2959.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_rf2959.c	2007-09-18 10:10:25.000000000 -0400
 @@ -265,7 +265,7 @@ int zd_rf_init_rf2959(struct zd_rf *rf)
  {
  	struct zd_chip *chip = zd_rf_to_chip(rf);
@@ -3346,8 +3433,9 @@
  		dev_err(zd_chip_dev(chip),
  		       "RF2959 is currently not supported for ZD1211B"
  		       " devices\n");
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.h.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.h
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.h	2007-09-18 10:10:25.000000000 -0400
 @@ -188,6 +188,7 @@ struct zd_usb {
  	struct zd_usb_rx rx;
  	struct zd_usb_tx tx;
@@ -3365,8 +3453,9 @@
  extern struct workqueue_struct *zd_workqueue;
  
  #endif /* _ZD_USB_H */
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.c	2007-09-18 10:10:25.000000000 -0400
 @@ -34,7 +34,7 @@ static const char * const rfs[] = {
  	[AL2210_RF]	= "AL2210_RF",
  	[MAXIM_NEW_RF]	= "MAXIM_NEW_RF",
@@ -3433,8 +3522,9 @@
  	rf->type = type;
  
  	r = zd_chip_lock_phy_regs(chip);
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_uw2453.c	2007-08-30 17:19:20.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_uw2453.c
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_uw2453.c	2007-09-18 10:10:25.000000000 -0400
 @@ -0,0 +1,534 @@
 +/* zd_rf_uw2453.c: Functions for the UW2453 RF controller
 + *
@@ -3970,8 +4060,9 @@
 +	return 0;
 +}
 +
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.h.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.h
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.h	2007-09-18 10:10:25.000000000 -0400
 @@ -189,7 +189,8 @@ int zd_mac_init(struct zd_mac *mac,
  		struct usb_interface *intf);
  void zd_mac_clear(struct zd_mac *mac);
@@ -3982,8 +4073,9 @@
  
  int zd_mac_open(struct net_device *netdev);
  int zd_mac_stop(struct net_device *netdev);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al7230b.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al7230b.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al7230b.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al7230b.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al7230b.c	2007-09-18 10:10:25.000000000 -0400
 @@ -473,7 +473,7 @@ int zd_rf_init_al7230b(struct zd_rf *rf)
  {
  	struct zd_chip *chip = zd_rf_to_chip(rf);
@@ -4001,8 +4093,9 @@
  	}
  
  	rf->switch_radio_off = al7230b_switch_radio_off;
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2007-09-18 10:10:25.000000000 -0400
 @@ -15,7 +15,6 @@
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
   */
@@ -4214,8 +4307,9 @@
  	if (r) {
  		dev_dbg_f(&intf->dev,
  		         "couldn't initialize mac. Error number %d\n", r);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c.orig linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c
 --- linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c	2007-09-18 10:10:25.000000000 -0400
 @@ -86,38 +86,46 @@ out:
  	return r;
  }
@@ -4337,8 +4431,9 @@
  			packet_length - frag_len : packet_length);
  
  	/*
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/wext.c.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/wext.c
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/wext.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/wext.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/wext.c	2007-09-18 10:10:25.000000000 -0400
 @@ -1719,9 +1719,6 @@ static int wlan_set_encodeext(struct net
  			pkey->type = KEY_TYPE_ID_TKIP;
  		} else if (alg == IW_ENCODE_ALG_CCMP) {
@@ -4349,8 +4444,9 @@
  		}
  
  		/* If WPA isn't enabled yet, do that now */
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/rx.c.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/rx.c
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/rx.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/rx.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/rx.c	2007-09-18 10:10:25.000000000 -0400
 @@ -439,7 +439,6 @@ static int process_rxed_802_11_packet(wl
  	ret = 0;
  
@@ -4359,8 +4455,9 @@
  	lbs_deb_leave_args(LBS_DEB_RX, "ret %d", ret);
  	return ret;
  }
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/main.c.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/main.c
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/main.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/main.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/main.c	2007-09-18 10:10:25.000000000 -0400
 @@ -613,6 +613,7 @@ static int wlan_service_main_thread(void
  
  	init_waitqueue_entry(&wait, current);
@@ -4369,8 +4466,9 @@
  	for (;;) {
  		lbs_deb_thread( "main-thread 111: intcounter=%d "
  		       "currenttxskb=%p dnld_sent=%d\n",
+diff -up linux-2.6.22.noarch/drivers/net/wireless/libertas/cmd.c.orig linux-2.6.22.noarch/drivers/net/wireless/libertas/cmd.c
 --- linux-2.6.22.noarch/drivers/net/wireless/libertas/cmd.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/libertas/cmd.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/cmd.c	2007-09-18 10:10:25.000000000 -0400
 @@ -240,7 +240,7 @@ static int wlan_cmd_802_11_enable_rsn(wl
  		if (*enable)
  			penableRSN->enable = cpu_to_le16(cmd_enable_rsn);
@@ -4380,8 +4478,9 @@
  	}
  
  	lbs_deb_leave(LBS_DEB_CMD);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/ipw2100.c.orig linux-2.6.22.noarch/drivers/net/wireless/ipw2100.c
 --- linux-2.6.22.noarch/drivers/net/wireless/ipw2100.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/ipw2100.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/ipw2100.c	2007-09-18 10:10:25.000000000 -0400
 @@ -1768,7 +1768,8 @@ static int ipw2100_up(struct ipw2100_pri
  
  		if (priv->stop_rf_kill) {
@@ -4443,8 +4542,9 @@
  			break;
  		default:
  			timeout = timeout_duration[level - 1] / 1000;
+diff -up linux-2.6.22.noarch/drivers/net/wireless/prism54/islpci_hotplug.c.orig linux-2.6.22.noarch/drivers/net/wireless/prism54/islpci_hotplug.c
 --- linux-2.6.22.noarch/drivers/net/wireless/prism54/islpci_hotplug.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/prism54/islpci_hotplug.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/islpci_hotplug.c	2007-09-18 10:10:25.000000000 -0400
 @@ -87,7 +87,6 @@ static struct pci_driver prism54_driver 
  	.remove = prism54_remove,
  	.suspend = prism54_suspend,
@@ -4453,8 +4553,9 @@
  };
  
  /******************************************************************************
+diff -up linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c
 --- linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2007-09-18 10:10:25.000000000 -0400
 @@ -1853,7 +1853,6 @@ prism54_del_mac(struct net_device *ndev,
  	islpci_private *priv = netdev_priv(ndev);
  	struct islpci_acl *acl = &priv->acl;
@@ -4528,8 +4629,9 @@
  		kfree(bss);
  	}
  }
+diff -up linux-2.6.22.noarch/drivers/net/wireless/ipw2200.c.orig linux-2.6.22.noarch/drivers/net/wireless/ipw2200.c
 --- linux-2.6.22.noarch/drivers/net/wireless/ipw2200.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/ipw2200.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/ipw2200.c	2007-09-18 10:10:25.000000000 -0400
 @@ -70,7 +70,7 @@
  #define VQ
  #endif
@@ -4611,8 +4713,9 @@
  		goto none;
  	}
  
+diff -up linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c.orig linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c
 --- linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c	2007-09-18 10:10:25.000000000 -0400
 @@ -1011,7 +1011,7 @@ static inline void wl3501_md_ind_interru
  	} else {
  		skb->dev = dev;
@@ -4622,8 +4725,111 @@
  		wl3501_receive(this, skb->data, pkt_len);
  		skb_put(skb, pkt_len);
  		skb->protocol	= eth_type_trans(skb, dev);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c.orig linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+--- linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.c	2007-09-18 10:25:25.000000000 -0400
+@@ -3183,6 +3183,9 @@ static void bcm43xx_periodic_work_handle
+ 	unsigned long orig_trans_start = 0;
+ 
+ 	mutex_lock(&bcm->mutex);
++	/* keep from doing and rearming periodic work if shutting down */
++	if (bcm43xx_status(bcm) == BCM43xx_STAT_UNINIT)
++		goto unlock_mutex;
+ 	if (unlikely(bcm->periodic_state % 60 == 0)) {
+ 		/* Periodic work will take a long time, so we want it to
+ 		 * be preemtible.
+@@ -3228,14 +3231,10 @@ static void bcm43xx_periodic_work_handle
+ 	mmiowb();
+ 	bcm->periodic_state++;
+ 	spin_unlock_irqrestore(&bcm->irq_lock, flags);
++unlock_mutex:
+ 	mutex_unlock(&bcm->mutex);
+ }
+ 
+-void bcm43xx_periodic_tasks_delete(struct bcm43xx_private *bcm)
+-{
+-	cancel_rearming_delayed_work(&bcm->periodic_work);
+-}
+-
+ void bcm43xx_periodic_tasks_setup(struct bcm43xx_private *bcm)
+ {
+ 	struct delayed_work *work = &bcm->periodic_work;
+@@ -3285,6 +3284,14 @@ static int bcm43xx_rng_init(struct bcm43
+ 	return err;
+ }
+ 
++void bcm43xx_cancel_work(struct bcm43xx_private *bcm)
++{
++	/* The system must be unlocked when this routine is entered.
++	 * If not, the next 2 steps may deadlock */
++	cancel_work_sync(&bcm->restart_work);
++	cancel_rearming_delayed_work(&bcm->periodic_work);
++}
++
+ static int bcm43xx_shutdown_all_wireless_cores(struct bcm43xx_private *bcm)
+ {
+ 	int ret = 0;
+@@ -3321,7 +3328,12 @@ static void bcm43xx_free_board(struct bc
+ {
+ 	bcm43xx_rng_exit(bcm);
+ 	bcm43xx_sysfs_unregister(bcm);
+-	bcm43xx_periodic_tasks_delete(bcm);
++
++	mutex_lock(&(bcm)->mutex);
++	bcm43xx_set_status(bcm, BCM43xx_STAT_UNINIT);
++	mutex_unlock(&(bcm)->mutex);
++
++	bcm43xx_cancel_work(bcm);
+ 
+ 	mutex_lock(&(bcm)->mutex);
+ 	bcm43xx_shutdown_all_wireless_cores(bcm);
+@@ -4018,7 +4030,7 @@ static int bcm43xx_net_stop(struct net_d
+ 	err = bcm43xx_disable_interrupts_sync(bcm);
+ 	assert(!err);
+ 	bcm43xx_free_board(bcm);
+-	flush_scheduled_work();
++	bcm43xx_cancel_work(bcm);
+ 
+ 	return 0;
+ }
+@@ -4150,9 +4162,9 @@ static void bcm43xx_chip_reset(struct wo
+ 	struct bcm43xx_phyinfo *phy;
+ 	int err = -ENODEV;
+ 
++	bcm43xx_cancel_work(bcm);
+ 	mutex_lock(&(bcm)->mutex);
+ 	if (bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED) {
+-		bcm43xx_periodic_tasks_delete(bcm);
+ 		phy = bcm43xx_current_phy(bcm);
+ 		err = bcm43xx_select_wireless_core(bcm, phy->type);
+ 		if (!err)
+diff -up linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c.orig linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c
+--- linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c	2007-09-18 10:11:13.000000000 -0400
+@@ -327,7 +327,7 @@ static ssize_t bcm43xx_attr_phymode_stor
+ 		goto out;
+ 	}
+ 
+-	bcm43xx_periodic_tasks_delete(bcm);
++	bcm43xx_cancel_work(bcm);
+ 	mutex_lock(&(bcm)->mutex);
+ 	err = bcm43xx_select_wireless_core(bcm, phytype);
+ 	if (!err)
+diff -up linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.h.orig linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.h
+--- linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.h.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/bcm43xx/bcm43xx_main.h	2007-09-18 10:11:13.000000000 -0400
+@@ -122,7 +122,7 @@ void bcm43xx_wireless_core_reset(struct 
+ void bcm43xx_mac_suspend(struct bcm43xx_private *bcm);
+ void bcm43xx_mac_enable(struct bcm43xx_private *bcm);
+ 
+-void bcm43xx_periodic_tasks_delete(struct bcm43xx_private *bcm);
++void bcm43xx_cancel_work(struct bcm43xx_private *bcm);
+ void bcm43xx_periodic_tasks_setup(struct bcm43xx_private *bcm);
+ 
+ void bcm43xx_controller_restart(struct bcm43xx_private *bcm, const char *reason);
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ap.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ap.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ap.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ap.c	2007-09-18 10:10:25.000000000 -0400
 @@ -326,7 +326,6 @@ static int ap_control_proc_read(char *pa
  	char *p = page;
  	struct ap_data *ap = (struct ap_data *) data;
@@ -4748,8 +4954,9 @@
  		if (sta->ap)
  			hostap_wds_link_oper(local, sta->addr, WDS_ADD);
  	}
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_config.h.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_config.h
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_config.h.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_config.h	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_config.h	2007-09-18 10:10:25.000000000 -0400
 @@ -1,8 +1,6 @@
  #ifndef HOSTAP_CONFIG_H
  #define HOSTAP_CONFIG_H
@@ -4759,8 +4966,9 @@
  /* In the previous versions of Host AP driver, support for user space version
   * of IEEE 802.11 management (hostapd) used to be disabled in the default
   * configuration. From now on, support for hostapd is always included and it is
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_pci.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_pci.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_pci.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_pci.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_pci.c	2007-09-18 10:10:25.000000000 -0400
 @@ -20,7 +20,6 @@
  #include "hostap_wlan.h"
  
@@ -4801,8 +5009,9 @@
  }
  
  
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-09-18 10:10:25.000000000 -0400
 @@ -22,7 +22,6 @@
  #include "hostap_wlan.h"
  
@@ -4834,8 +5043,9 @@
  }
  
  
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_main.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_main.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_main.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_main.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_main.c	2007-09-18 10:10:25.000000000 -0400
 @@ -37,7 +37,6 @@
  MODULE_AUTHOR("Jouni Malinen");
  MODULE_DESCRIPTION("Host AP common routines");
@@ -4844,8 +5054,9 @@
  
  #define TX_TIMEOUT (2 * HZ)
  
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-09-18 10:10:25.000000000 -0400
 @@ -3893,8 +3893,6 @@ static void prism2_get_drvinfo(struct ne
  	local = iface->local;
  
@@ -4855,8 +5066,9 @@
  	snprintf(info->fw_version, sizeof(info->fw_version) - 1,
  		 "%d.%d.%d", (local->sta_fw_ver >> 16) & 0xff,
  		 (local->sta_fw_ver >> 8) & 0xff,
+diff -up linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_plx.c.orig linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_plx.c
 --- linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_plx.c.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_plx.c	2007-08-30 17:19:20.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_plx.c	2007-09-18 10:10:25.000000000 -0400
 @@ -23,7 +23,6 @@
  #include "hostap_wlan.h"
  
@@ -4898,8 +5110,57 @@
  }
  
  
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/Documentation/networking/mac80211-injection.txt	2007-08-30 17:21:26.000000000 -0400
+diff -up linux-2.6.22.noarch/fs/compat_ioctl.c.orig linux-2.6.22.noarch/fs/compat_ioctl.c
+--- linux-2.6.22.noarch/fs/compat_ioctl.c.orig	2007-07-08 19:32:17.000000000 -0400
++++ linux-2.6.22.noarch/fs/compat_ioctl.c	2007-09-18 10:11:13.000000000 -0400
+@@ -2306,8 +2306,10 @@ static int do_wireless_ioctl(unsigned in
+ 	struct iwreq __user *iwr_u;
+ 	struct iw_point __user *iwp;
+ 	struct compat_iw_point __user *iwp_u;
+-	compat_caddr_t pointer;
++	compat_caddr_t pointer_u;
++	void __user *pointer;
+ 	__u16 length, flags;
++	int ret;
+ 
+ 	iwr_u = compat_ptr(arg);
+ 	iwp_u = (struct compat_iw_point __user *) &iwr_u->u.data;
+@@ -2325,17 +2327,29 @@ static int do_wireless_ioctl(unsigned in
+ 			   sizeof(iwr->ifr_ifrn.ifrn_name)))
+ 		return -EFAULT;
+ 
+-	if (__get_user(pointer, &iwp_u->pointer) ||
++	if (__get_user(pointer_u, &iwp_u->pointer) ||
+ 	    __get_user(length, &iwp_u->length) ||
+ 	    __get_user(flags, &iwp_u->flags))
+ 		return -EFAULT;
+ 
+-	if (__put_user(compat_ptr(pointer), &iwp->pointer) ||
++	if (__put_user(compat_ptr(pointer_u), &iwp->pointer) ||
+ 	    __put_user(length, &iwp->length) ||
+ 	    __put_user(flags, &iwp->flags))
+ 		return -EFAULT;
+ 
+-	return sys_ioctl(fd, cmd, (unsigned long) iwr);
++	ret = sys_ioctl(fd, cmd, (unsigned long) iwr);
++
++	if (__get_user(pointer, &iwp->pointer) ||
++	    __get_user(length, &iwp->length) ||
++	    __get_user(flags, &iwp->flags))
++		return -EFAULT;
++
++	if (__put_user(ptr_to_compat(pointer), &iwp_u->pointer) ||
++	    __put_user(length, &iwp_u->length) ||
++	    __put_user(flags, &iwp_u->flags))
++		return -EFAULT;
++
++	return ret;
+ }
+ 
+ /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE
+diff -up /dev/null linux-2.6.22.noarch/Documentation/networking/mac80211-injection.txt
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/Documentation/networking/mac80211-injection.txt	2007-09-18 10:10:25.000000000 -0400
 @@ -0,0 +1,59 @@
 +How to use packet injection with mac80211
 +=========================================
@@ -4960,8 +5221,9 @@
 +http://penumbra.warmcat.com/_twk/tiki-index.php?page=packetspammer
 +
 +Andy Green <andy at warmcat.com>
---- /dev/null	2007-08-30 08:15:33.553140766 -0400
-+++ linux-2.6.22.noarch/Documentation/networking/radiotap-headers.txt	2007-08-30 17:21:26.000000000 -0400
+diff -up /dev/null linux-2.6.22.noarch/Documentation/networking/radiotap-headers.txt
+--- /dev/null	2007-09-18 08:44:28.563724362 -0400
++++ linux-2.6.22.noarch/Documentation/networking/radiotap-headers.txt	2007-09-18 10:10:25.000000000 -0400
 @@ -0,0 +1,152 @@
 +How to use radiotap headers
 +===========================


--- linux-2.6-iwlwifi-fw-name-compat.patch DELETED ---




More information about the scm-commits mailing list