rpms/kernel/F-7 git-wireless-dev.patch, 1.23, 1.24 kernel-2.6.spec, 1.3336, 1.3337 linux-2.6-wireless-pending.patch, 1.1, 1.2 linux-2.6-wireless.patch, 1.8, 1.9 linux-2.6-mac80211-local-mcast-filter.patch, 1.3, NONE

John W. Linville (linville) fedora-extras-commits at redhat.com
Thu Aug 30 21:54:19 UTC 2007


Author: linville

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

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-mac80211-local-mcast-filter.patch 
Log Message:
Update bits from wireless-2.6 and wireless-dev

git-wireless-dev.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.23 -r 1.24 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.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- git-wireless-dev.patch	25 Aug 2007 02:33:49 -0000	1.23
+++ git-wireless-dev.patch	30 Aug 2007 21:54:14 -0000	1.24
@@ -1,5 +1,5 @@
 --- linux-2.6.22.noarch/CREDITS.orig	2007-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/CREDITS	2007-08-24 11:42:09.000000000 -0400
++++ linux-2.6.22.noarch/CREDITS	2007-08-30 17:37:10.000000000 -0400
 @@ -665,6 +665,11 @@ D: Minor updates to SCSI types, added /p
  S: (ask for current address)
  S: USA
@@ -67,7 +67,7 @@
  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-24 11:42:09.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/nl80211.h	2007-08-30 17:37:10.000000000 -0400
 @@ -7,6 +7,201 @@
   */
  
@@ -328,7 +328,7 @@
 +
  #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-24 11:42:15.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/mod_devicetable.h	2007-08-30 17:37:10.000000000 -0400
 @@ -333,4 +333,19 @@ struct parisc_device_id {
  #define PA_HVERSION_ANY_ID	0xffff
  #define PA_SVERSION_ANY_ID	0xffffffff
@@ -349,8 +349,8 @@
 +#define SSB_ANY_REV		0xFF
 +
  #endif /* LINUX_MOD_DEVICETABLE_H */
---- linux-2.6.22.noarch/include/linux/ieee80211.h.orig	2007-08-24 11:41:51.000000000 -0400
-+++ linux-2.6.22.noarch/include/linux/ieee80211.h	2007-08-24 11:42:09.000000000 -0400
+--- 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
 @@ -106,6 +106,75 @@ struct ieee80211_hdr {
  } __attribute__ ((packed));
  
@@ -649,8 +649,8 @@
 +};
 +
  #endif /* IEEE80211_H */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_chipcommon.h	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,396 @@
 +#ifndef LINUX_SSB_CHIPCO_H_
 +#define LINUX_SSB_CHIPCO_H_
@@ -1048,8 +1048,8 @@
 +#endif /* CONFIG_SSB_SERIAL */
 +
 +#endif /* LINUX_SSB_CHIPCO_H_ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_extif.h	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,204 @@
 +/*
 + * Hardware-specific External Interface I/O core definitions
@@ -1255,8 +1255,8 @@
 +
 +#endif /* CONFIG_SSB_DRIVER_EXTIF */
 +#endif /* LINUX_SSB_EXTIFCORE_H_ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_mips.h	2007-08-24 11:42:09.000000000 -0400
+--- /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
 @@ -0,0 +1,46 @@
 +#ifndef LINUX_SSB_MIPSCORE_H_
 +#define LINUX_SSB_MIPSCORE_H_
@@ -1304,8 +1304,8 @@
 +#endif /* CONFIG_SSB_DRIVER_MIPS */
 +
 +#endif /* LINUX_SSB_MIPSCORE_H_ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_regs.h	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,292 @@
 +#ifndef LINUX_SSB_REGS_H_
 +#define LINUX_SSB_REGS_H_
@@ -1599,8 +1599,8 @@
 +
 +
 +#endif /* LINUX_SSB_REGS_H_ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb_driver_pci.h	2007-08-24 11:42:09.000000000 -0400
+--- /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
 @@ -0,0 +1,106 @@
 +#ifndef LINUX_SSB_PCICORE_H_
 +#define LINUX_SSB_PCICORE_H_
@@ -1708,8 +1708,8 @@
 +
 +#endif /* CONFIG_SSB_DRIVER_PCICORE */
 +#endif /* LINUX_SSB_PCICORE_H_ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/include/linux/ssb/ssb.h	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,424 @@
 +#ifndef LINUX_SSB_H_
 +#define LINUX_SSB_H_
@@ -2135,8 +2135,8 @@
 +
 +
 +#endif /* LINUX_SSB_H_ */
---- linux-2.6.22.noarch/include/net/cfg80211.h.orig	2007-08-24 11:41:51.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/cfg80211.h	2007-08-24 11:42:09.000000000 -0400
+--- 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
 @@ -3,6 +3,7 @@
  
  #include <linux/netlink.h>
@@ -2279,220 +2279,9 @@
 +			    u32 seq, int flags, u8 cmd);
 +
  #endif /* __NET_CFG80211_H */
---- linux-2.6.22.noarch/include/net/mac80211.h.orig	2007-08-24 11:41:51.000000000 -0400
-+++ linux-2.6.22.noarch/include/net/mac80211.h	2007-08-24 11:44:39.000000000 -0400
-@@ -1,7 +1,9 @@
- /*
-- * Low-level hardware driver -- IEEE 802.11 driver (80211.o) interface
-+ * mac80211 <-> driver interface
-+ *
-  * Copyright 2002-2005, Devicescape Software, Inc.
-  * Copyright 2006-2007	Jiri Benc <jbenc at suse.cz>
-+ * Copyright 2007	Johannes Berg <johannes at sipsolutions.net>
-  *
-  * 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 {
- #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_LONG_RETRY_LIMIT (1<<10) /* this frame should be send
-+						  * using the through
-+						  * set_retry_limit configured
-+						  * long retry value */
- 	u32 flags;			       /* tx control flags defined
- 						* above */
--	u8 retry_limit;		/* 1 = only first attempt, 2 = one retry, .. */
-+	u8 retry_limit;		/* 1 = only first attempt, 2 = one retry, ..
-+				 * This could be used when set_retry_limit
-+				 * is not implemented by the driver */
- 	u8 power_level;		/* per-packet transmit power level, in dBm */
- 	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 power_level;			/* transmit power limit for current
- 					 * regulatory domain; in dBm */
- 	u8 antenna_max;			/* maximum antenna gain */
--	short tx_power_reduction; /* in 0.1 dBm */
- 
- 	/* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */
- 	u8 antenna_sel_tx;
- 	u8 antenna_sel_rx;
--
--	int antenna_def;
--	int antenna_mode;
--
--	/* Following five fields are used for IEEE 802.11H */
--	unsigned int radar_detect;
--	unsigned int spect_mgmt;
--	/* All following fields are currently unused. */
--	unsigned int quiet_duration; /* duration of quiet period */
--	unsigned int quiet_offset; /* how far into the beacon is the quiet
--				    * period */
--	unsigned int quiet_period;
--	u8 radar_firpwr_threshold;
--	u8 radar_rssi_threshold;
--	u8 pulse_height_threshold;
--	u8 pulse_rssi_threshold;
--	u8 pulse_inband_threshold;
- };
- 
- /**
-@@ -402,29 +392,47 @@ 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 {
-+	ALG_NONE,
-+	ALG_WEP,
-+	ALG_TKIP,
[...20827 lines suppressed...]
 +/******************************************************************************
 + *
@@ -131540,8 +118596,8 @@
 +	return cpu_to_le16((u16)rate|flags);
 +}
 +#endif
---- linux-2.6.22.noarch/drivers/net/wireless/ath5k_base.h.orig	2007-08-24 11:44:40.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/ath5k_base.h	2007-08-24 11:44:40.000000000 -0400
+--- /dev/null	2007-08-30 08:15:33.553140766 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/ath5k_base.h	2007-08-30 17:37:10.000000000 -0400
 @@ -0,0 +1,204 @@
 +/*-
 + * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
@@ -131747,8 +118803,8 @@
 +	(ath5k_hw_get_capability(_ah, AR5K_CAP_VEOL, 0, NULL) == 0)
 +
 +#endif
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/adm8211.c	2007-08-24 11:44:39.000000000 -0400
+--- /dev/null	2007-08-30 08:15:33.553140766 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/adm8211.c	2007-08-30 17:37:10.000000000 -0400
 @@ -0,0 +1,2127 @@
 +
 +/*
@@ -133877,8 +120933,8 @@
 +
 +module_init(adm8211_init);
 +module_exit(adm8211_exit);
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/p54usb.h	2007-08-24 11:42:10.000000000 -0400
+--- /dev/null	2007-08-30 08:15:33.553140766 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/p54usb.h	2007-08-30 17:37:10.000000000 -0400
 @@ -0,0 +1,133 @@
 +#ifndef PRISM54USB_H
 +#define PRISM54USB_H
@@ -134013,8 +121069,8 @@
 +};
 +
 +#endif /* PRISM54USB_H */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/iwl-helpers.h	2007-08-24 11:42:10.000000000 -0400
+--- /dev/null	2007-08-30 08:15:33.553140766 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/iwl-helpers.h	2007-08-30 17:37:10.000000000 -0400
 @@ -0,0 +1,255 @@
 +/******************************************************************************
 + *
@@ -134271,8 +121327,8 @@
 +}
 +
 +#endif				/* __iwl_helpers_h__ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/iwl-3945-rs.c	2007-08-24 11:42:10.000000000 -0400
+--- /dev/null	2007-08-30 08:15:33.553140766 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/iwl-3945-rs.c	2007-08-30 17:37:10.000000000 -0400
 @@ -0,0 +1,985 @@
 +/******************************************************************************
 + *
@@ -135259,8 +122315,8 @@
 +}
 +
 +
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/b43_pci_bridge.c	2007-08-24 11:44:39.000000000 -0400
+--- /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
 @@ -0,0 +1,46 @@
 +/*
 + * Broadcom 43xx PCI-SSB bridge module
@@ -135308,8 +122364,8 @@
 +{
 +	ssb_pcihost_unregister(&b43_pci_bridge_driver);
 +}
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/Makefile	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,18 @@
 +# core
 +ssb-y					+= main.o scan.o
@@ -135329,8 +122385,8 @@
 +ssb-$(CONFIG_SSB_PCIHOST)		+= b43_pci_bridge.o
 +
 +obj-$(CONFIG_SSB)			+= ssb.o
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pcmcia.c	2007-08-24 11:42:10.000000000 -0400
+--- /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
 @@ -0,0 +1,271 @@
 +/*
 + * Sonics Silicon Backplane
@@ -135603,8 +122659,8 @@
 +error:
 +	return -ENODEV;
 +}
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/main.c	2007-08-24 11:44:39.000000000 -0400
+--- /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
 @@ -0,0 +1,1162 @@
 +/*
 + * Sonics Silicon Backplane
@@ -136768,8 +123824,8 @@
 +	bus_unregister(&ssb_bustype);
 +}
 +module_exit(ssb_modexit)
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pcihost_wrapper.c	2007-08-24 11:42:10.000000000 -0400
+--- /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
 @@ -0,0 +1,104 @@
 +/*
 + * Sonics Silicon Backplane
@@ -136875,8 +123931,8 @@
 +	return pci_register_driver(driver);
 +}
 +EXPORT_SYMBOL(ssb_pcihost_register);
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_mipscore.c	2007-08-24 11:42:10.000000000 -0400
+--- /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
 @@ -0,0 +1,223 @@
 +/*
 + * Sonics Silicon Backplane
@@ -137101,8 +124157,8 @@
 +	ssb_mips_serial_init(mcore);
 +	ssb_mips_flash_detect(mcore);
 +}
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/ssb_private.h	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,136 @@
 +#ifndef LINUX_SSB_PRIVATE_H_
 +#define LINUX_SSB_PRIVATE_H_
@@ -137240,8 +124296,8 @@
 +#endif /* CONFIG_SSB_PCIHOST */
 +
 +#endif /* LINUX_SSB_PRIVATE_H_ */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/pci.c	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,740 @@
 +/*
 + * Sonics Silicon Backplane PCI-Hostbus related functions.
@@ -137983,8 +125039,8 @@
 +out:
 +	return err;
 +}
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_chipcommon.c	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,446 @@
 +/*
 + * Sonics Silicon Backplane
@@ -138432,8 +125488,8 @@
 +	return nr_ports;
 +}
 +#endif /* CONFIG_SSB_SERIAL */
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/Kconfig	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,117 @@
 +menu "Sonics Silicon Backplane"
 +
@@ -138552,8 +125608,8 @@
 +	  If unsure, say N
 +
 +endmenu
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/scan.c	2007-08-24 11:42:10.000000000 -0400
+--- /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
 @@ -0,0 +1,413 @@
 +/*
 + * Sonics Silicon Backplane
@@ -138968,8 +126024,8 @@
 +	ssb_iounmap(bus);
 +	goto out;
 +}
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_extif.c	2007-08-24 11:42:15.000000000 -0400
+--- /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
 @@ -0,0 +1,129 @@
 +/*
 + * Sonics Silicon Backplane
@@ -139100,8 +126156,8 @@
 +				   mask, value);
 +}
 +
---- /dev/null	2007-08-24 08:13:44.541426538 -0400
-+++ linux-2.6.22.noarch/drivers/ssb/driver_pcicore.c	2007-08-24 11:42:10.000000000 -0400
+--- /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
 @@ -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.3336
retrieving revision 1.3337
diff -u -r1.3336 -r1.3337
--- kernel-2.6.spec	30 Aug 2007 16:44:26 -0000	1.3336
+++ kernel-2.6.spec	30 Aug 2007 21:54:14 -0000	1.3337
@@ -599,7 +599,6 @@
 Patch682: linux-2.6-wireless-pending.patch
 Patch683: linux-2.6-bcm43xx-pci-neuter.patch
 Patch690: git-wireless-dev.patch
-Patch691: linux-2.6-mac80211-local-mcast-filter.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
@@ -1310,8 +1309,6 @@
 
 # Add wireless stack and driver updates from wireless-dev
 ApplyPatch git-wireless-dev.patch
-# mac80211: Filter locally-originated multicast frames echoed by AP
-ApplyPatch linux-2.6-mac80211-local-mcast-filter.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
@@ -2309,6 +2306,9 @@
 %endif
 
 %changelog
+* Thu Aug 30 2007 John W. Linville <linville at redhat.com>
+- Update bits from wireless-2.6 and wireless-dev
+
 * Thu Aug 30 2007 Chuck Ebbert <cebbert at redhat.com>
 - Linux 2.6.22.6-rc1
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.1 -r 1.2 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-wireless-pending.patch	8 Aug 2007 20:59:44 -0000	1.1
+++ linux-2.6-wireless-pending.patch	30 Aug 2007 21:54:14 -0000	1.2
@@ -1,5 +1,13069 @@
+--- 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
+@@ -1,7 +1,9 @@
+ /*
+- * Low-level hardware driver -- IEEE 802.11 driver (80211.o) interface
++ * mac80211 <-> driver interface
++ *
+  * Copyright 2002-2005, Devicescape Software, Inc.
+  * Copyright 2006-2007	Jiri Benc <jbenc at suse.cz>
++ * Copyright 2007	Johannes Berg <johannes at sipsolutions.net>
+  *
+  * 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 {
+ #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_LONG_RETRY_LIMIT (1<<10) /* this frame should be send
++						  * using the through
++						  * set_retry_limit configured
++						  * long retry value */
+ 	u32 flags;			       /* tx control flags defined
+ 						* above */
+-	u8 retry_limit;		/* 1 = only first attempt, 2 = one retry, .. */
++	u8 retry_limit;		/* 1 = only first attempt, 2 = one retry, ..
++				 * This could be used when set_retry_limit
++				 * is not implemented by the driver */
+ 	u8 power_level;		/* per-packet transmit power level, in dBm */
+ 	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 power_level;			/* transmit power limit for current
+ 					 * regulatory domain; in dBm */
+ 	u8 antenna_max;			/* maximum antenna gain */
+-	short tx_power_reduction; /* in 0.1 dBm */
+ 
+ 	/* 0 = default/diversity, 1 = Ant0, 2 = Ant1 */
+ 	u8 antenna_sel_tx;
+ 	u8 antenna_sel_rx;
+-
+-	int antenna_def;
+-	int antenna_mode;
+-
+-	/* Following five fields are used for IEEE 802.11H */
+-	unsigned int radar_detect;
+-	unsigned int spect_mgmt;
+-	/* All following fields are currently unused. */
+-	unsigned int quiet_duration; /* duration of quiet period */
+-	unsigned int quiet_offset; /* how far into the beacon is the quiet
+-				    * period */
+-	unsigned int quiet_period;
+-	u8 radar_firpwr_threshold;
+-	u8 radar_rssi_threshold;
+-	u8 pulse_height_threshold;
+-	u8 pulse_rssi_threshold;
+-	u8 pulse_inband_threshold;
+ };
+ 
+ /**
+@@ -402,29 +392,41 @@ 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 {
++	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.
++	 */
++	int hw_key_idx;
+ 
+-	int hw_key_idx;			/* filled + used by low-level driver */
++	/* key algorithm, ALG_NONE should never be seen by the driver */
+ 	ieee80211_key_alg alg;
+-	int keylen;
+ 
+-#define IEEE80211_KEY_FORCE_SW_ENCRYPT (1<<0) /* to be cleared by low-level
+-						 driver */
+-#define IEEE80211_KEY_DEFAULT_TX_KEY   (1<<1) /* This key is the new default TX
+-						 key (used only for broadcast
+-						 keys). */
+-#define IEEE80211_KEY_DEFAULT_WEP_ONLY (1<<2) /* static WEP is the only
+-						 configured security policy;
+-						 this allows some low-level
+-						 drivers to determine when
+-						 hwaccel can be used */
+-	u32 flags; /* key configuration flags defined above */
++	/* key flags, see above */
++	u8 flags;
++
++	/* key index: 0-3 */
++	s8 keyidx;
++
++	/* length of key material */
++	u8 keylen;
+ 
+-	s8 keyidx;			/* WEP key index */
++	/* the key material */
+ 	u8 key[0];
+ };
+ 
+@@ -432,7 +434,7 @@ struct ieee80211_key_conf {
+ #define IEEE80211_SEQ_COUNTER_TX	1
+ 
+ typedef enum {
+-	SET_KEY, DISABLE_KEY, REMOVE_ALL_KEYS,
++	SET_KEY, DISABLE_KEY,
+ } set_key_cmd;
+ 
+ /* This is driver-visible part of the per-hw state the stack keeps. */
+@@ -457,20 +459,25 @@ struct ieee80211_hw {
+ 
+ 	/* TODO: frame_type 802.11/802.3, sw_encryption requirements */
+ 
+-	/* Some wireless LAN chipsets generate beacons in the hardware/firmware
+-	 * and others rely on host generated beacons. This option is used to
+-	 * configure the upper layer IEEE 802.11 module to generate beacons.
+-	 * The low-level driver can use ieee80211_beacon_get() to fetch the
+-	 * next beacon frame. */
+-#define IEEE80211_HW_HOST_GEN_BEACON (1<<0)
++/* hole at 0 */
+ 
+-	/* The device needs to be supplied with a beacon template only. */
++	/*
++	 * The device only needs to be supplied with a beacon template.
++	 * If you need the host to generate each beacon then don't use
++	 * this flag and use ieee80211_beacon_get().
++	 */
+ #define IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE (1<<1)
+ 
+-	/* Some devices handle decryption internally and do not
++	/*
++	 * Some devices handle decryption internally and do not
+ 	 * indicate whether the frame was encrypted (unencrypted frames
+ 	 * will be dropped by the hardware, unless specifically allowed
+-	 * through) */
++	 * through.)
++	 * It is permissible to not handle all encrypted frames and fall
++	 * back to software encryption; however, if this flag is set
++	 * unencrypted frames must be dropped unless the driver is told
++	 * otherwise via the set_ieee8021x() callback.
++	 */
+ #define IEEE80211_HW_DEVICE_HIDES_WEP (1<<2)
+ 
+ 	/* Whether RX frames passed to ieee80211_rx() include FCS in the end */
+@@ -484,19 +491,30 @@ struct ieee80211_hw {
+ 	 * can fetch them with ieee80211_get_buffered_bc(). */
+ #define IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING (1<<4)
+ 
++	/*
++	 * This flag is only relevant if hardware encryption is used.
++	 * If set, it has two meanings:
++	 *  1) the IV and ICV are present in received frames that have
++	 *     been decrypted (unless IEEE80211_HW_DEVICE_HIDES_WEP is
++	 *     also set)
++	 *  2) on transmission, the IV should be generated in software.
++	 *
++	 * Please let us know if you *don't* use this flag, the stack would
++	 * really like to be able to get the IV to keep key statistics
++	 * accurate.
++	 */
+ #define IEEE80211_HW_WEP_INCLUDE_IV (1<<5)
+ 
+-	/* will data nullfunc frames get proper TX status callback */
+-#define IEEE80211_HW_DATA_NULLFUNC_ACK (1<<6)
++/* hole at 6 */
+ 
+-	/* Force software encryption for TKIP packets if WMM is enabled. */
+-#define IEEE80211_HW_NO_TKIP_WMM_HWACCEL (1<<7)
[...16561 lines suppressed...]
+-		    (char *)kmalloc(eeprom->len+sizeof(regctrl), GFP_KERNEL);
++	adapter->prdeeprom = kmalloc(eeprom->len+sizeof(regctrl), GFP_KERNEL);
+ 	if (!adapter->prdeeprom)
+ 		return -ENOMEM;
+ 	memcpy(adapter->prdeeprom, &regctrl, sizeof(regctrl));
+@@ -72,9 +71,9 @@ static int libertas_ethtool_get_eeprom(s
  	       regctrl.action, regctrl.offset, regctrl.NOB);
  
  	ret = libertas_prepare_and_send_command(priv,
@@ -11653,7 +25730,7 @@
  				    &regctrl);
  
  	if (ret) {
-@@ -138,8 +138,8 @@ static int libertas_ethtool_get_stats_co
+@@ -138,8 +137,8 @@ static int libertas_ethtool_get_stats_co
  
  	/* Get Mesh Statistics */
  	ret = libertas_prepare_and_send_command(priv,
@@ -11665,7 +25742,7 @@
  	if (ret) {
  		ret = 0;
 --- 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-08 16:42:22.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/decl.h	2007-08-30 17:32:02.000000000 -0400
 @@ -15,14 +15,9 @@ struct wlan_private;
  struct sk_buff;
  struct net_device;
@@ -11701,7 +25778,7 @@
  void __libertas_cleanup_and_insert_cmd(wlan_private * priv,
  					struct cmd_ctrl_node *ptempcmd);
  
-@@ -75,17 +68,14 @@ void libertas_mac_event_disconnected(wla
+@@ -75,17 +68,15 @@ void libertas_mac_event_disconnected(wla
  
  void libertas_send_iwevcustom_event(wlan_private * priv, s8 * str);
  
@@ -11713,16 +25790,27 @@
  						             int *cfp_no);
  wlan_private *libertas_add_card(void *card, struct device *dmdev);
 -int libertas_activate_card(wlan_private *priv, char *fw_name);
-+int libertas_activate_card(wlan_private *priv);
  int libertas_remove_card(wlan_private *priv);
++int libertas_start_card(wlan_private *priv);
++int libertas_stop_card(wlan_private *priv);
  int libertas_add_mesh(wlan_private *priv, struct device *dev);
  void libertas_remove_mesh(wlan_private *priv);
 -
 +int libertas_reset_device(wlan_private *priv);
  
  #endif				/* _WLAN_DECL_H_ */
---- linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c.orig	2007-08-08 16:42:02.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2007-08-08 16:42:22.000000000 -0400
+--- 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
+@@ -67,6 +67,7 @@ struct rtl8187_priv {
+ 	struct rtl818x_csr *map;
+ 	void (*rf_init)(struct ieee80211_hw *);
+ 	int mode;
++	int if_id;
+ 
+ 	/* 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
 @@ -1753,7 +1753,7 @@ prism54_get_oid(struct net_device *ndev,
  	int rvalue;
  	enum oid_num_t n = dwrq->flags;
@@ -11751,7 +25839,7 @@
  
  void
 --- 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-08 16:42:22.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/oid_mgt.c	2007-08-30 17:32:02.000000000 -0400
 @@ -244,13 +244,11 @@ mgt_init(islpci_private *priv)
  	/* Alloc the cache */
  	for (i = 0; i < OID_NUM_LAST; i++) {
@@ -11767,8 +25855,8 @@
  		} else
  			priv->mib[i] = NULL;
  	}
---- linux-2.6.22.noarch/drivers/net/wireless/Kconfig.orig	2007-08-08 16:42:02.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/Kconfig	2007-08-08 16:42:22.000000000 -0400
+--- 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
 @@ -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.
@@ -11903,8 +25991,8 @@
  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-08 16:42:02.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c	2007-08-08 16:42:22.000000000 -0400
+--- 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
 @@ -859,7 +859,7 @@ static int wl3501_esbq_confirm(struct wl
  
  static void wl3501_online(struct net_device *dev)
@@ -12156,7 +26244,15 @@
  	int rc = wl3501_get_mib_value(this,
  				      WL3501_MIB_ATTR_PRIV_OPT_IMPLEMENTED,
  				      &implemented, sizeof(implemented));
-@@ -1852,7 +1852,7 @@ static int wl3501_get_power(struct net_d
+@@ -1841,7 +1841,6 @@ static int wl3501_get_encode(struct net_
+ 	tocopy = min_t(u8, len_keys, wrqu->encoding.length);
+ 	tocopy = min_t(u8, tocopy, 100);
+ 	wrqu->encoding.length = tocopy;
+-	memset(extra, 0, tocopy);
+ 	memcpy(extra, keys, tocopy);
+ out:
+ 	return rc;
+@@ -1852,7 +1851,7 @@ static int wl3501_get_power(struct net_d
  			    union iwreq_data *wrqu, char *extra)
  {
  	u8 pwr_state;
@@ -12165,7 +26261,7 @@
  	int rc = wl3501_get_mib_value(this,
  				      WL3501_MIB_ATTR_CURRENT_PWR_STATE,
  				      &pwr_state, sizeof(pwr_state));
-@@ -1937,7 +1937,7 @@ static int wl3501_probe(struct pcmcia_de
+@@ -1937,7 +1936,7 @@ static int wl3501_probe(struct pcmcia_de
  	dev->tx_timeout		= wl3501_tx_timeout;
  	dev->watchdog_timeo	= 5 * HZ;
  	dev->get_stats		= wl3501_get_stats;
@@ -12174,7 +26270,7 @@
  	this->wireless_data.spy_data = &this->spy_data;
  	this->p_dev = p_dev;
  	dev->wireless_data	= &this->wireless_data;
-@@ -2006,7 +2006,7 @@ static int wl3501_config(struct pcmcia_d
+@@ -2006,7 +2005,7 @@ static int wl3501_config(struct pcmcia_d
  
  	SET_MODULE_OWNER(dev);
  
@@ -12183,7 +26279,7 @@
  	/*
  	 * At this point, the dev_node_t structure(s) should be initialized and
  	 * arranged in a linked list at link->dev_node.
-@@ -2079,7 +2079,7 @@ static int wl3501_suspend(struct pcmcia_
+@@ -2079,7 +2078,7 @@ static int wl3501_suspend(struct pcmcia_
  {
  	struct net_device *dev = link->priv;
  
@@ -12192,7 +26288,7 @@
  	if (link->open)
  		netif_device_detach(dev);
  
-@@ -2090,7 +2090,7 @@ static int wl3501_resume(struct pcmcia_d
+@@ -2090,7 +2089,7 @@ static int wl3501_resume(struct pcmcia_d
  {
  	struct net_device *dev = link->priv;
  
@@ -12202,7 +26298,7 @@
  		wl3501_reset(dev);
  		netif_device_attach(dev);
 --- 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-08 16:42:22.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/arlan-proc.c	2007-08-30 17:32:02.000000000 -0400
 @@ -435,7 +435,7 @@ static int arlan_sysctl_info(ctl_table *
  		goto final;
  	}
@@ -12267,7 +26363,7 @@
  
  	} else
 --- 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-08 16:42:22.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_wlan.h	2007-08-30 17:32:02.000000000 -0400
 @@ -3,6 +3,7 @@
  
  #include <linux/wireless.h>
@@ -12285,8 +26381,8 @@
  	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-08 16:42:02.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-08-08 16:42:22.000000000 -0400
+--- 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
 @@ -272,7 +272,7 @@ static int sandisk_enable_wireless(struc
  {
  	int res, ret = 0;
@@ -12297,7 +26393,7 @@
  	tuple_t tuple;
  	cisparse_t *parse = NULL;
 --- 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-08 16:42:22.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_hw.c	2007-08-30 17:32:02.000000000 -0400
 @@ -825,7 +825,7 @@ static int hfa384x_get_rid(struct net_de
  	    local->hw_downloading)
  		return -ENODEV;
@@ -12367,8 +26463,8 @@
  	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-08 16:42:02.000000000 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-08-08 16:42:22.000000000 -0400
+--- 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
 @@ -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.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- linux-2.6-wireless.patch	8 Aug 2007 20:59:44 -0000	1.8
+++ linux-2.6-wireless.patch	30 Aug 2007 21:54:14 -0000	1.9
@@ -1,5 +1,5 @@
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/include/linux/ieee80211.h	2007-08-30 17:19:20.000000000 -0400
 @@ -227,6 +227,17 @@ struct ieee80211_cts {
  #define WLAN_CAPABILITY_SHORT_SLOT_TIME	(1<<10)
  #define WLAN_CAPABILITY_DSSS_OFDM	(1<<13)
@@ -19,7 +19,7 @@
  enum ieee80211_statuscode {
  	WLAN_STATUS_SUCCESS = 0,
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/include/net/cfg80211.h	2007-08-30 17:22:48.000000000 -0400
 @@ -11,6 +11,44 @@
   * Copyright 2006 Johannes Berg <johannes at sipsolutions.net>
   */
@@ -66,7 +66,7 @@
  struct wiphy;
  
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/include/net/mac80211.h	2007-08-30 17:19:20.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
@@ -114,7 +114,7 @@
   * 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
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/ieee80211/ieee80211_wx.c	2007-08-30 17:19:20.000000000 -0400
 @@ -90,14 +90,11 @@ static char *ieee80211_translate_scan(st
  	}
  
@@ -132,8 +132,8 @@
  	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-07-08 19:32:17.000000000 -0400
-+++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_assoc.c	2007-08-08 16:40:24.000000000 -0400
+--- 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
 @@ -271,8 +271,11 @@ ieee80211softmac_assoc_work(struct work_
  			 */
  			dprintk(KERN_INFO PFX "Associate: Scanning for networks first.\n");
@@ -148,7 +148,7 @@
  		} else {
  			mac->associnfo.associating = 0;
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/ieee80211/softmac/ieee80211softmac_module.c	2007-08-30 17:19:20.000000000 -0400
 @@ -456,18 +456,13 @@ void
  ieee80211softmac_add_network_locked(struct ieee80211softmac_device *mac,
  	struct ieee80211softmac_network *add_net)
@@ -209,7 +209,7 @@
  			!memcmp(softmac_net->essid.data, essid->data, essid->len))
  			return softmac_net;
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_iface.c	2007-08-30 17:19:20.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;
@@ -228,7 +228,7 @@
  	default:
  		printk(KERN_WARNING "%s: %s: Unknown interface type 0x%x",
 --- 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-08 16:40:38.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_ioctl.c	2007-08-30 17:19:20.000000000 -0400
 @@ -27,20 +27,6 @@
  #include "aes_ccm.h"
  #include "debugfs_key.h"
@@ -740,7 +740,7 @@
  	(iw_handler) ieee80211_ioctl_giwrts,		/* SIOCGIWRTS */
  	(iw_handler) ieee80211_ioctl_siwfrag,		/* SIOCSIWFRAG */
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_rate.c	2007-08-30 17:19:20.000000000 -0400
 @@ -24,11 +24,10 @@ int ieee80211_rate_control_register(stru
  {
  	struct rate_control_alg *alg;
@@ -755,7 +755,7 @@
  
  	mutex_lock(&rate_ctrl_mutex);
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/Makefile	2007-08-30 17:19:20.000000000 -0400
 @@ -13,6 +13,7 @@ mac80211-objs := \
  	ieee80211_iface.o \
  	ieee80211_rate.o \
@@ -764,8 +764,8 @@
  	tkip.o \
  	aes_ccm.o \
  	wme.o \
---- /dev/null	2007-08-08 08:21:33.519325700 -0400
-+++ linux-2.6.22.noarch/net/mac80211/regdomain.c	2007-08-08 16:40:24.000000000 -0400
+--- /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
 @@ -0,0 +1,158 @@
 +/*
 + * Copyright 2002-2005, Instant802 Networks, Inc.
@@ -926,7 +926,7 @@
 +}
 +
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/hostapd_ioctl.h	2007-08-30 17:19:20.000000000 -0400
 @@ -26,24 +26,16 @@
   * mess shall be deleted completely. */
  enum {
@@ -953,7 +953,7 @@
  	PRISM2_PARAM_KEY_TX_RX_THRESHOLD = 1024,
  	PRISM2_PARAM_DEFAULT_WEP_ONLY = 1026,
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_common.h	2007-08-30 17:19:20.000000000 -0400
 @@ -47,21 +47,16 @@ enum ieee80211_msg_type {
  	ieee80211_msg_normal = 0,
  	ieee80211_msg_tx_callback_ack = 1,
@@ -979,7 +979,7 @@
  	int tx_rx_count;
  	char ifname[IFNAMSIZ];
 --- 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-08 16:40:38.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211.c	2007-08-30 17:26:39.000000000 -0400
 @@ -24,6 +24,7 @@
  #include <linux/compiler.h>
  #include <linux/bitmap.h>
@@ -1500,7 +1500,7 @@
  
  	if (!status) {
  		printk(KERN_ERR
-@@ -4395,27 +4591,100 @@ void ieee80211_tx_status(struct ieee8021
+@@ -4395,27 +4591,99 @@ void ieee80211_tx_status(struct ieee8021
  			local->dot11FailedCount++;
  	}
  
@@ -1603,7 +1603,6 @@
 +			memset(skb->cb, 0, sizeof(skb->cb));
 +			netif_rx(skb);
 +			skb = skb2;
-+			break;
 +		}
 +	}
 + out:
@@ -1613,7 +1612,7 @@
  }
  EXPORT_SYMBOL(ieee80211_tx_status);
  
-@@ -4619,6 +4888,9 @@ struct ieee80211_hw *ieee80211_alloc_hw(
+@@ -4619,6 +4887,9 @@ struct ieee80211_hw *ieee80211_alloc_hw(
  			 ((sizeof(struct ieee80211_local) +
  			   NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST);
  
@@ -1623,7 +1622,7 @@
  	local->ops = ops;
  
  	/* for now, mdev needs sub_if_data :/ */
-@@ -4647,8 +4919,6 @@ struct ieee80211_hw *ieee80211_alloc_hw(
+@@ -4647,8 +4918,6 @@ struct ieee80211_hw *ieee80211_alloc_hw(
  	local->short_retry_limit = 7;
  	local->long_retry_limit = 4;
  	local->hw.conf.radio_enabled = 1;
@@ -1632,7 +1631,7 @@
  
  	local->enabled_modes = (unsigned int) -1;
  
-@@ -4712,6 +4982,14 @@ int ieee80211_register_hw(struct ieee802
+@@ -4712,6 +4981,14 @@ int ieee80211_register_hw(struct ieee802
  		goto fail_workqueue;
  	}
  
@@ -1647,7 +1646,7 @@
  	debugfs_hw_add(local);
  
  	local->hw.conf.beacon_int = 1000;
-@@ -4818,7 +5096,7 @@ int ieee80211_register_hwmode(struct iee
+@@ -4818,7 +5095,7 @@ int ieee80211_register_hwmode(struct iee
  	}
  
  	if (!(hw->flags & IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED))
@@ -1656,7 +1655,7 @@
  
  	return 0;
  }
-@@ -4969,6 +5247,7 @@ static int __init ieee80211_init(void)
+@@ -4969,6 +5246,7 @@ static int __init ieee80211_init(void)
  	}
  
  	ieee80211_debugfs_netdev_init();
@@ -1665,7 +1664,7 @@
  	return 0;
  }
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/rc80211_simple.c	2007-08-30 17:19:20.000000000 -0400
 @@ -187,9 +187,13 @@ static void rate_control_simple_tx_statu
  		}
  #endif
@@ -1705,7 +1704,7 @@
  }
  
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_i.h	2007-08-30 17:19:20.000000000 -0400
 @@ -99,6 +99,12 @@ struct ieee80211_sta_bss {
  	int probe_resp;
  	unsigned long last_update;
@@ -1789,7 +1788,7 @@
  extern void *mac80211_wiphy_privid;
  
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/ieee80211_sta.c	2007-08-30 17:26:39.000000000 -0400
 @@ -25,7 +25,6 @@
  #include <linux/wireless.h>
  #include <linux/random.h>
@@ -2003,7 +2002,7 @@
  		ieee80211_sta_reset_auth(dev, ifsta);
  		return 0;
  	}
-@@ -2121,7 +2150,6 @@ static int ieee80211_sta_config_auth(str
+@@ -2121,18 +2150,20 @@ static int ieee80211_sta_config_auth(str
  		ieee80211_sta_set_bssid(dev, selected->bssid);
  		ieee80211_rx_bss_put(dev, selected);
  		ifsta->state = IEEE80211_AUTHENTICATE;
@@ -2011,7 +2010,15 @@
  		ieee80211_sta_reset_auth(dev, ifsta);
  		return 0;
  	} else {
-@@ -2132,7 +2160,6 @@ static int ieee80211_sta_config_auth(str
+ 		if (ifsta->state != IEEE80211_AUTHENTICATE) {
+-			ieee80211_sta_start_scan(dev, NULL, 0);
++			if (ifsta->auto_ssid_sel)
++				ieee80211_sta_start_scan(dev, NULL, 0);
++			else
++				ieee80211_sta_start_scan(dev, ifsta->ssid,
++							 ifsta->ssid_len);
+ 			ifsta->state = IEEE80211_AUTHENTICATE;
+ 			set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request);
  		} else
  			ifsta->state = IEEE80211_DISABLED;
  	}
@@ -2020,7 +2027,7 @@
  }
  
 --- 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-08 16:40:38.000000000 -0400
++++ linux-2.6.22.noarch/net/mac80211/debugfs_netdev.c	2007-08-30 17:19:20.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" : "",
@@ -2070,15 +2077,15 @@
  	return 0;
  }
 --- 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-08 16:40:24.000000000 -0400
++++ linux-2.6.22.noarch/net/wireless/Makefile	2007-08-30 17:21:45.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-08 08:21:33.519325700 -0400
-+++ linux-2.6.22.noarch/net/wireless/radiotap.c	2007-08-08 16:40:24.000000000 -0400
+--- /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
 @@ -0,0 +1,257 @@
 +/*
 + * Radiotap parser
@@ -2338,7 +2345,7 @@
 +}
 +EXPORT_SYMBOL(ieee80211_radiotap_iterator_next);
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/airo.c	2007-08-30 17:19:20.000000000 -0400
 @@ -52,6 +52,8 @@
  
  #include "airo.h"
@@ -2955,7 +2962,7 @@
  		return 0;
  
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.c	2007-08-30 17:19:20.000000000 -0400
 @@ -49,8 +49,9 @@ void zd_chip_clear(struct zd_chip *chip)
  	ZD_MEMCLEAR(chip, sizeof(*chip));
  }
@@ -3137,7 +3144,7 @@
  
  	ZD_ASSERT(mutex_is_locked(&chip->mutex));
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/Makefile	2007-08-30 17:19:20.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 \
@@ -3148,7 +3155,7 @@
  
  ifeq ($(CONFIG_ZD1211RW_DEBUG),y)
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.h	2007-08-30 17:19:20.000000000 -0400
 @@ -26,7 +26,7 @@
  #define AL2210_RF			0x7
  #define MAXIM_NEW_RF			0x8
@@ -3211,7 +3218,7 @@
  
  #endif /* _ZD_RF_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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_chip.h	2007-08-30 17:19:20.000000000 -0400
 @@ -608,6 +608,9 @@ enum {
  #define CR_ZD1211B_TXOP			CTL_REG(0x0b20)
  #define CR_ZD1211B_RETRY_MAX		CTL_REG(0x0b28)
@@ -3266,7 +3273,7 @@
  int zd_chip_switch_radio_on(struct zd_chip *chip);
  int zd_chip_switch_radio_off(struct zd_chip *chip);
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al2230.c	2007-08-30 17:19:20.000000000 -0400
 @@ -21,6 +21,8 @@
  #include "zd_usb.h"
  #include "zd_chip.h"
@@ -3329,7 +3336,7 @@
  	return 0;
  }
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_rf2959.c	2007-08-30 17:19:20.000000000 -0400
 @@ -265,7 +265,7 @@ int zd_rf_init_rf2959(struct zd_rf *rf)
  {
  	struct zd_chip *chip = zd_rf_to_chip(rf);
@@ -3340,7 +3347,7 @@
  		       "RF2959 is currently not supported for ZD1211B"
  		       " devices\n");
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.h	2007-08-30 17:19:20.000000000 -0400
 @@ -188,6 +188,7 @@ struct zd_usb {
  	struct zd_usb_rx rx;
  	struct zd_usb_tx tx;
@@ -3359,7 +3366,7 @@
  
  #endif /* _ZD_USB_H */
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf.c	2007-08-30 17:19:20.000000000 -0400
 @@ -34,7 +34,7 @@ static const char * const rfs[] = {
  	[AL2210_RF]	= "AL2210_RF",
  	[MAXIM_NEW_RF]	= "MAXIM_NEW_RF",
@@ -3426,8 +3433,8 @@
  	rf->type = type;
  
  	r = zd_chip_lock_phy_regs(chip);
---- /dev/null	2007-08-08 08:21:33.519325700 -0400
-+++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_uw2453.c	2007-08-08 16:40:25.000000000 -0400
+--- /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
 @@ -0,0 +1,534 @@
 +/* zd_rf_uw2453.c: Functions for the UW2453 RF controller
 + *
@@ -3964,7 +3971,7 @@
 +}
 +
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.h	2007-08-30 17:19:20.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);
@@ -3976,7 +3983,7 @@
  int zd_mac_open(struct net_device *netdev);
  int zd_mac_stop(struct net_device *netdev);
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_rf_al7230b.c	2007-08-30 17:19:20.000000000 -0400
 @@ -473,7 +473,7 @@ int zd_rf_init_al7230b(struct zd_rf *rf)
  {
  	struct zd_chip *chip = zd_rf_to_chip(rf);
@@ -3995,7 +4002,7 @@
  
  	rf->switch_radio_off = al7230b_switch_radio_off;
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_usb.c	2007-08-30 17:19:20.000000000 -0400
 @@ -15,7 +15,6 @@
   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
   */
@@ -4208,7 +4215,7 @@
  		dev_dbg_f(&intf->dev,
  		         "couldn't initialize mac. Error number %d\n", r);
 --- 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-08 16:40:38.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/zd1211rw/zd_mac.c	2007-08-30 17:19:20.000000000 -0400
 @@ -86,38 +86,46 @@ out:
  	return r;
  }
@@ -4331,7 +4338,7 @@
  
  	/*
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/wext.c	2007-08-30 17:19:20.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) {
@@ -4343,7 +4350,7 @@
  
  		/* If WPA isn't enabled yet, do that now */
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/rx.c	2007-08-30 17:19:20.000000000 -0400
 @@ -439,7 +439,6 @@ static int process_rxed_802_11_packet(wl
  	ret = 0;
  
@@ -4353,7 +4360,7 @@
  	return ret;
  }
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/main.c	2007-08-30 17:19:20.000000000 -0400
 @@ -613,6 +613,7 @@ static int wlan_service_main_thread(void
  
  	init_waitqueue_entry(&wait, current);
@@ -4363,7 +4370,7 @@
  		lbs_deb_thread( "main-thread 111: intcounter=%d "
  		       "currenttxskb=%p dnld_sent=%d\n",
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/libertas/cmd.c	2007-08-30 17:19:20.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);
@@ -4374,7 +4381,7 @@
  
  	lbs_deb_leave(LBS_DEB_CMD);
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/ipw2100.c	2007-08-30 17:19:20.000000000 -0400
 @@ -1768,7 +1768,8 @@ static int ipw2100_up(struct ipw2100_pri
  
  		if (priv->stop_rf_kill) {
@@ -4437,7 +4444,7 @@
  		default:
  			timeout = timeout_duration[level - 1] / 1000;
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/islpci_hotplug.c	2007-08-30 17:19:20.000000000 -0400
 @@ -87,7 +87,6 @@ static struct pci_driver prism54_driver 
  	.remove = prism54_remove,
  	.suspend = prism54_suspend,
@@ -4447,7 +4454,7 @@
  
  /******************************************************************************
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/prism54/isl_ioctl.c	2007-08-30 17:19:20.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;
@@ -4522,7 +4529,7 @@
  	}
  }
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/ipw2200.c	2007-08-30 17:19:20.000000000 -0400
 @@ -70,7 +70,7 @@
  #define VQ
  #endif
@@ -4605,7 +4612,7 @@
  	}
  
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/wl3501_cs.c	2007-08-30 17:19:20.000000000 -0400
 @@ -1011,7 +1011,7 @@ static inline void wl3501_md_ind_interru
  	} else {
  		skb->dev = dev;
@@ -4616,7 +4623,7 @@
  		skb_put(skb, pkt_len);
  		skb->protocol	= eth_type_trans(skb, dev);
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ap.c	2007-08-30 17:19:20.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;
@@ -4742,7 +4749,7 @@
  			hostap_wds_link_oper(local, sta->addr, WDS_ADD);
  	}
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_config.h	2007-08-30 17:19:20.000000000 -0400
 @@ -1,8 +1,6 @@
  #ifndef HOSTAP_CONFIG_H
  #define HOSTAP_CONFIG_H
@@ -4753,7 +4760,7 @@
   * 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
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_pci.c	2007-08-30 17:19:20.000000000 -0400
 @@ -20,7 +20,6 @@
  #include "hostap_wlan.h"
  
@@ -4795,7 +4802,7 @@
  
  
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_cs.c	2007-08-30 17:19:20.000000000 -0400
 @@ -22,7 +22,6 @@
  #include "hostap_wlan.h"
  
@@ -4828,7 +4835,7 @@
  
  
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_main.c	2007-08-30 17:19:20.000000000 -0400
 @@ -37,7 +37,6 @@
  MODULE_AUTHOR("Jouni Malinen");
  MODULE_DESCRIPTION("Host AP common routines");
@@ -4838,7 +4845,7 @@
  #define TX_TIMEOUT (2 * HZ)
  
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_ioctl.c	2007-08-30 17:19:20.000000000 -0400
 @@ -3893,8 +3893,6 @@ static void prism2_get_drvinfo(struct ne
  	local = iface->local;
  
@@ -4849,7 +4856,7 @@
  		 "%d.%d.%d", (local->sta_fw_ver >> 16) & 0xff,
  		 (local->sta_fw_ver >> 8) & 0xff,
 --- 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-08 16:40:25.000000000 -0400
++++ linux-2.6.22.noarch/drivers/net/wireless/hostap/hostap_plx.c	2007-08-30 17:19:20.000000000 -0400
 @@ -23,7 +23,6 @@
  #include "hostap_wlan.h"
  
@@ -4891,3 +4898,220 @@
  }
  
  
+--- /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
+@@ -0,0 +1,59 @@
++How to use packet injection with mac80211
++=========================================
++
++mac80211 now allows arbitrary packets to be injected down any Monitor Mode
++interface from userland.  The packet you inject needs to be composed in the
++following format:
++
++ [ radiotap header  ]
++ [ ieee80211 header ]
++ [ payload ]
++
++The radiotap format is discussed in
++./Documentation/networking/radiotap-headers.txt.
++
++Despite 13 radiotap argument types are currently defined, most only make sense
++to appear on received packets.  Currently three kinds of argument are used by
++the injection code, although it knows to skip any other arguments that are
++present (facilitating replay of captured radiotap headers directly):
++
++ - IEEE80211_RADIOTAP_RATE - u8 arg in 500kbps units (0x02 --> 1Mbps)
++
++ - IEEE80211_RADIOTAP_ANTENNA - u8 arg, 0x00 = ant1, 0x01 = ant2
++
++ - IEEE80211_RADIOTAP_DBM_TX_POWER - u8 arg, dBm
++
++Here is an example valid radiotap header defining these three parameters
++
++	0x00, 0x00, // <-- radiotap version
++	0x0b, 0x00, // <- radiotap header length
++	0x04, 0x0c, 0x00, 0x00, // <-- bitmap
++	0x6c, // <-- rate
++	0x0c, //<-- tx power
++	0x01 //<-- antenna
++
++The ieee80211 header follows immediately afterwards, looking for example like
++this:
++
++	0x08, 0x01, 0x00, 0x00,
++	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
++	0x13, 0x22, 0x33, 0x44, 0x55, 0x66,
++	0x13, 0x22, 0x33, 0x44, 0x55, 0x66,
++	0x10, 0x86
++
++Then lastly there is the payload.
++
++After composing the packet contents, it is sent by send()-ing it to a logical
++mac80211 interface that is in Monitor mode.  Libpcap can also be used,
++(which is easier than doing the work to bind the socket to the right
++interface), along the following lines:
++
++	ppcap = pcap_open_live(szInterfaceName, 800, 1, 20, szErrbuf);
++...
++	r = pcap_inject(ppcap, u8aSendBuffer, nLength);
++
++You can also find sources for a complete inject test applet here:
++
++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
+@@ -0,0 +1,152 @@
++How to use radiotap headers
++===========================
++
++Pointer to the radiotap include file
++------------------------------------
++
++Radiotap headers are variable-length and extensible, you can get most of the
++information you need to know on them from:
++
++./include/net/ieee80211_radiotap.h
++
++This document gives an overview and warns on some corner cases.
++
++
++Structure of the header
++-----------------------
++
++There is a fixed portion at the start which contains a u32 bitmap that defines
++if the possible argument associated with that bit is present or not.  So if b0
++of the it_present member of ieee80211_radiotap_header is set, it means that
++the header for argument index 0 (IEEE80211_RADIOTAP_TSFT) is present in the
++argument area.
++
++   < 8-byte ieee80211_radiotap_header >
++   [ <possible argument bitmap extensions ... > ]
++   [ <argument> ... ]
++
++At the moment there are only 13 possible argument indexes defined, but in case
++we run out of space in the u32 it_present member, it is defined that b31 set
++indicates that there is another u32 bitmap following (shown as "possible
++argument bitmap extensions..." above), and the start of the arguments is moved
++forward 4 bytes each time.
++
++Note also that the it_len member __le16 is set to the total number of bytes
++covered by the ieee80211_radiotap_header and any arguments following.
++
++
++Requirements for arguments
++--------------------------
++
++After the fixed part of the header, the arguments follow for each argument
++index whose matching bit is set in the it_present member of
++ieee80211_radiotap_header.
++
++ - the arguments are all stored little-endian!
++
++ - the argument payload for a given argument index has a fixed size.  So
++   IEEE80211_RADIOTAP_TSFT being present always indicates an 8-byte argument is
++   present.  See the comments in ./include/net/ieee80211_radiotap.h for a nice
++   breakdown of all the argument sizes
++
++ - the arguments must be aligned to a boundary of the argument size using
++   padding.  So a u16 argument must start on the next u16 boundary if it isn't
++   already on one, a u32 must start on the next u32 boundary and so on.
++
++ - "alignment" is relative to the start of the ieee80211_radiotap_header, ie,
++   the first byte of the radiotap header.  The absolute alignment of that first
++   byte isn't defined.  So even if the whole radiotap header is starting at, eg,
++   address 0x00000003, still the first byte of the radiotap header is treated as
++   0 for alignment purposes.
++
++ - the above point that there may be no absolute alignment for multibyte
++   entities in the fixed radiotap header or the argument region means that you
++   have to take special evasive action when trying to access these multibyte
++   entities.  Some arches like Blackfin cannot deal with an attempt to
++   dereference, eg, a u16 pointer that is pointing to an odd address.  Instead
++   you have to use a kernel API get_unaligned() to dereference the pointer,
++   which will do it bytewise on the arches that require that.
++
++ - The arguments for a given argument index can be a compound of multiple types
++   together.  For example IEEE80211_RADIOTAP_CHANNEL has an argument payload
++   consisting of two u16s of total length 4.  When this happens, the padding
++   rule is applied dealing with a u16, NOT dealing with a 4-byte single entity.
++
++
++Example valid radiotap header
++-----------------------------
++
++	0x00, 0x00, // <-- radiotap version + pad byte
++	0x0b, 0x00, // <- radiotap header length
++	0x04, 0x0c, 0x00, 0x00, // <-- bitmap
++	0x6c, // <-- rate (in 500kHz units)
++	0x0c, //<-- tx power
++	0x01 //<-- antenna
++
++
++Using the Radiotap Parser
++-------------------------
++
++If you are having to parse a radiotap struct, you can radically simplify the
++job by using the radiotap parser that lives in net/wireless/radiotap.c and has
++its prototypes available in include/net/cfg80211.h.  You use it like this:
++
++#include <net/cfg80211.h>
++
++/* buf points to the start of the radiotap header part */
++
++int MyFunction(u8 * buf, int buflen)
++{
++	int pkt_rate_100kHz = 0, antenna = 0, pwr = 0;
++	struct ieee80211_radiotap_iterator iterator;
++	int ret = ieee80211_radiotap_iterator_init(&iterator, buf, buflen);
++
++	while (!ret) {
++
++		ret = ieee80211_radiotap_iterator_next(&iterator);
++
++		if (ret)
++			continue;
++
++		/* see if this argument is something we can use */
++
++		switch (iterator.this_arg_index) {
++		/*
++		 * You must take care when dereferencing iterator.this_arg
++		 * for multibyte types... the pointer is not aligned.  Use
++		 * get_unaligned((type *)iterator.this_arg) to dereference
++		 * iterator.this_arg for type "type" safely on all arches.
++		 */
++		case IEEE80211_RADIOTAP_RATE:
++			/* radiotap "rate" u8 is in
++			 * 500kbps units, eg, 0x02=1Mbps
++			 */
++			pkt_rate_100kHz = (*iterator.this_arg) * 5;
++			break;
++
++		case IEEE80211_RADIOTAP_ANTENNA:
++			/* radiotap uses 0 for 1st ant */
++			antenna = *iterator.this_arg);
++			break;
++
++		case IEEE80211_RADIOTAP_DBM_TX_POWER:
++			pwr = *iterator.this_arg;
++			break;
++
++		default:
++			break;
++		}
++	}  /* while more rt headers */
++
++	if (ret != -ENOENT)
++		return TXRX_DROP;
++
++	/* discard the radiotap header part */
++	buf += iterator.max_length;
++	buflen -= iterator.max_length;
++
++	...
++
++}
++
++Andy Green <andy at warmcat.com>


--- linux-2.6-mac80211-local-mcast-filter.patch DELETED ---




More information about the fedora-extras-commits mailing list