rpms/kernel/devel linux-2.6-rndis_wlan.patch, NONE, 1.1 config-generic, 1.62, 1.63 kernel.spec, 1.391, 1.392 linux-2.6-wireless-pending.patch, 1.25, 1.26 linux-2.6-wireless.patch, 1.19, 1.20 linux-2.6-rndis_wext.patch, 1.1, NONE linux-2.6-wireless-b43-reject-new-firmware.patch, 1.1, NONE linux-2.6-wireless-reverts.patch, 1.5, NONE

John W. Linville (linville) fedora-extras-commits at redhat.com
Tue Jan 29 22:34:37 UTC 2008


Author: linville

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

Modified Files:
	config-generic kernel.spec linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Added Files:
	linux-2.6-rndis_wlan.patch 
Removed Files:
	linux-2.6-rndis_wext.patch 
	linux-2.6-wireless-b43-reject-new-firmware.patch 
	linux-2.6-wireless-reverts.patch 
Log Message:
A few more wireless fixes for 2.6.25 ; Some post-2.6.25 wireless updates ; Actually, we support the new b43 firmware...

linux-2.6-rndis_wlan.patch:

--- NEW FILE linux-2.6-rndis_wlan.patch ---
commit c4b411b390cfb0fe70a0eb2db70f4fb3ed3bc3c4
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:51 2008 +0200

    Add new driver 'rndis_wlan' for wireless RNDIS devices.
    
    New driver for wireless RNDIS devices. So far only known chip that uses
    wireless RNDIS is Broadcom 4320. Driver detects all RNDIS devices that
    have RNDIS wireless physical medium. At least following devices are
    detected:
    
      Buffalo WLI-U2-KG125S
      U.S. Robotics USR5421
      Belkin F5D7051
      Linksys WUSB54GSv2
      Linksys WUSB54GSC
      Asus WL169gE
      Eminent EM4045
      BT Voyager 1055
      Linksys WUSB54GSv1
      U.S. Robotics USR5420
      BUFFALO WLI-USB-G54
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit f252cf8b662f629c1a3502fcb41ef087d73c303f
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:45 2008 +0200

    Move usbnet.h and rndis_host.h to include/linux/usb
    
    Move headers usbnet.h and rndis_host.h to include/linux/usb and fix includes
    for drivers/net/usb modules. Headers are moved because rndis_wlan will be
    outside drivers/net/usb in drivers/net/wireless and yet need these headers.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 759964297fc35b8e38e7c9d828e9505322ea11f5
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sun Jan 27 23:34:33 2008 +0200

    rndis_host: Add RNDIS physical medium checking into generic_rndis_bind()
    
    Add RNDIS physical medium checking into generic_rndis_bind() and also make
    rndis_host to be only bind on every medium except wireless.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 04136a20e91bec8cd1c2cf919ddef8fb0df83942
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:34 2008 +0200

    rndis_host: Add link_change function pointer to 'struct rndis_data'.
    
    Callback to signal link state changes from minidriver to
    'subminidrivers'.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 92d1f152f3861f4fafc0eea93ea904b027cb6349
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:28 2008 +0200

    rndis_host: Add early_init function pointer to 'struct rndis_data'.
    
    Function pointer is for 'subminidrivers' that need to do work on device
    right after minidriver has initialized hardware.
    
    For example, rndis_wlan setting device specific configuration parameters
    with OID_GEN_RNDIS_CONFIG_PARAMETER right after rndis_host has
    initialized hardware with RNDIS_INIT.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit bc82bb39f2feb6d02d67dafc2a7d073b18bcd3f3
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:23 2008 +0200

    usbnet: add driver_priv pointer to 'struct usbnet'
    
    Add a private data pointer to usbnet for rndis_wlan module to use.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 979f81d29fcbcfb885731c179ba3fb35dc0e41e3
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:17 2008 +0200

    rndis_host: export functions
    
    Export rndis_host functions and also rename rndis_bind() to
    generic_rndis_bind() for modules using rndis_host as base.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit acd85817a5d49a57e15c1bf623f2b42c4ce310ff
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:12 2008 +0200

    rndis_host: Split up rndis_host.c
    
    Split up rndis_host.c into rndis_host.h and rndis_base.c. This is done so
    that rndis_wlan can reuse common parts with rndis_host.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 4339098646304ad10352e2d88db7938aefc4f274
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:06 2008 +0200

    usbnet: Use wlan device name for RNDIS wireless devices
    
    Use wlan device name for RNDIS wireless devices.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 7e90d8d06bb53755efc553bf68f01b98009898a1
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:51:01 2008 +0200

    rndis_host: Fix rndis packet filter flags.
    
    RNDIS packet filter flags are not exactly the same as CDC flags
    so we cannot reuse them.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 1ebc0a52277ee415989b28e83ad914051f936ef6
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:50:55 2008 +0200

    rndis_host: Halt device if rndis_bind fails.
    
    When bind fails after device was initialized, shutdown device properly
    by sending RNDIS_MSG_HALT.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 4a565e67420d42e4afb0b75e865bfe68d867469d
Author: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
Date:   Sat Jan 26 00:50:49 2008 +0200

    rndis_host: Use 1KB buffer in rndis_unbind
    
    rndis_command requires the caller to pass in a buffer of at least 1KB.
    
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit 43afa83e72732356f76e0663fc6e8ccc92b203ed
Author: Bjorge Dijkstra <bjd at jooz.net>
Date:   Sat Jan 26 00:50:44 2008 +0200

    cdc_ether: Hardwire CDC descriptors when missing
    
    Just as ActiveSync devices, some regular RNDIS devices also lack
    the CDC descriptors (e.g. devices based on BCM4320 WLAN chip).
    This patch hardwires the CDC descriptors for all RNDIS style devices
    when they are missing.
    
    Signed-off-by: Bjorge Dijkstra <bjd at jooz.net>
    Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
    Acked-by: David Brownell <dbrownell at users.sourceforge.net>
    Signed-off-by: John W. Linville <linville at tuxdriver.com>

commit c088851901888afc7ec355ea14b03db2692a3c61
Author: Bjorge Dijkstra <bjd at jooz.net>
Date:   Sat Jan 26 00:50:38 2008 +0200

    rndis_host: Fix sparse warning
    
    rndis_unbind and usbnet_cdc_unbind don't return anything.
    
[...3948 lines suppressed...]
+	.tx_fixup =	rndis_tx_fixup,
+	.reset =	rndis_wext_reset,
+	.early_init =	bcm4320_early_init,
+	.link_change =	rndis_wext_link_change,
+};
+
+static const struct driver_info rndis_wext_info = {
+	.description =	"Wireless RNDIS device",
+	.flags =	FLAG_WLAN | FLAG_FRAMING_RN | FLAG_NO_SETINT,
+	.bind =		rndis_wext_bind,
+	.unbind =	rndis_wext_unbind,
+	.status =	rndis_status,
+	.rx_fixup =	rndis_rx_fixup,
+	.tx_fixup =	rndis_tx_fixup,
+	.reset =	rndis_wext_reset,
+	.early_init =	bcm4320_early_init,
+	.link_change =	rndis_wext_link_change,
+};
+
+/*-------------------------------------------------------------------------*/
+
+static const struct usb_device_id products [] = {
+#define	RNDIS_MASTER_INTERFACE \
+	.bInterfaceClass	= USB_CLASS_COMM, \
+	.bInterfaceSubClass	= 2 /* ACM */, \
+	.bInterfaceProtocol	= 0x0ff
+
+/* INF driver for these devices have DriverVer >= 4.xx.xx.xx and many custom
+ * parameters available. Chipset marked as 'BCM4320SKFBG' in NDISwrapper-wiki.
+ */
+{
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0411,
+	.idProduct		= 0x00bc,	/* Buffalo WLI-U2-KG125S */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0baf,
+	.idProduct		= 0x011b,	/* U.S. Robotics USR5421 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x050d,
+	.idProduct		= 0x011b,	/* Belkin F5D7051 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x1799,	/* Belkin has two vendor ids */
+	.idProduct		= 0x011b,	/* Belkin F5D7051 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x13b1,
+	.idProduct		= 0x0014,	/* Linksys WUSB54GSv2 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x13b1,
+	.idProduct		= 0x0026,	/* Linksys WUSB54GSC */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0b05,
+	.idProduct		= 0x1717,	/* Asus WL169gE */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0a5c,
+	.idProduct		= 0xd11b,	/* Eminent EM4045 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x1690,
+	.idProduct		= 0x0715,	/* BT Voyager 1055 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320b_info,
+},
+/* These devices have DriverVer < 4.xx.xx.xx and do not have any custom
+ * parameters available, hardware probably contain older firmware version with
+ * no way of updating. Chipset marked as 'BCM4320????' in NDISwrapper-wiki.
+ */
+{
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x13b1,
+	.idProduct		= 0x000e,	/* Linksys WUSB54GSv1 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320a_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0baf,
+	.idProduct		= 0x0111,	/* U.S. Robotics USR5420 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320a_info,
+}, {
+	.match_flags	=   USB_DEVICE_ID_MATCH_INT_INFO
+			  | USB_DEVICE_ID_MATCH_DEVICE,
+	.idVendor		= 0x0411,
+	.idProduct		= 0x004b,	/* BUFFALO WLI-USB-G54 */
+	RNDIS_MASTER_INTERFACE,
+	.driver_info		= (unsigned long) &bcm4320a_info,
+},
+/* Generic Wireless RNDIS devices that we don't have exact
+ * idVendor/idProduct/chip yet.
+ */
+{
+	/* RNDIS is MSFT's un-official variant of CDC ACM */
+	USB_INTERFACE_INFO(USB_CLASS_COMM, 2 /* ACM */, 0x0ff),
+	.driver_info = (unsigned long) &rndis_wext_info,
+}, {
+	/* "ActiveSync" is an undocumented variant of RNDIS, used in WM5 */
+	USB_INTERFACE_INFO(USB_CLASS_MISC, 1, 1),
+	.driver_info = (unsigned long) &rndis_wext_info,
+},
+	{ },		// END
+};
+MODULE_DEVICE_TABLE(usb, products);
+
+static struct usb_driver rndis_wlan_driver = {
+	.name =		"rndis_wlan",
+	.id_table =	products,
+	.probe =	usbnet_probe,
+	.disconnect =	usbnet_disconnect,
+	.suspend =	usbnet_suspend,
+	.resume =	usbnet_resume,
+};
+
+static int __init rndis_wlan_init(void)
+{
+	return usb_register(&rndis_wlan_driver);
+}
+module_init(rndis_wlan_init);
+
+static void __exit rndis_wlan_exit(void)
+{
+	usb_deregister(&rndis_wlan_driver);
+}
+module_exit(rndis_wlan_exit);
+
+MODULE_AUTHOR("Bjorge Dijkstra");
+MODULE_AUTHOR("Jussi Kivilinna");
+MODULE_DESCRIPTION("Driver for RNDIS based USB Wireless adapters");
+MODULE_LICENSE("GPL");
+
diff -up linux-2.6.24.noarch/drivers/net/wireless/Kconfig.orig linux-2.6.24.noarch/drivers/net/wireless/Kconfig
--- linux-2.6.24.noarch/drivers/net/wireless/Kconfig.orig	2008-01-29 17:12:32.000000000 -0500
+++ linux-2.6.24.noarch/drivers/net/wireless/Kconfig	2008-01-29 17:13:29.000000000 -0500
@@ -553,6 +553,34 @@ config USB_ZD1201
 	  To compile this driver as a module, choose M here: the
 	  module will be called zd1201.
 
+config USB_NET_RNDIS_WLAN
+	tristate "Wireless RNDIS USB support"
+	depends on USB && WLAN_80211 && EXPERIMENTAL
+	select USB_USBNET
+	select USB_NET_CDCETHER
+	select USB_NET_RNDIS_HOST
+	select WIRELESS_EXT
+	---help---
+	  This is a driver for wireless RNDIS devices.
+	  These are USB based adapters found in devices such as:
+
+	  Buffalo WLI-U2-KG125S
+	  U.S. Robotics USR5421
+	  Belkin F5D7051
+	  Linksys WUSB54GSv2
+	  Linksys WUSB54GSC
+	  Asus WL169gE
+	  Eminent EM4045
+	  BT Voyager 1055
+	  Linksys WUSB54GSv1
+	  U.S. Robotics USR5420
+	  BUFFALO WLI-USB-G54
+
+	  All of these devices are based on Broadcom 4320 chip which is the
+	  only wireless RNDIS chip known to date.
+
+	  If you choose to build a module, it'll be called rndis_wlan.
+
 config RTL8180
 	tristate "Realtek 8180/8185 PCI support"
 	depends on MAC80211 && PCI && WLAN_80211 && EXPERIMENTAL


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- config-generic	28 Jan 2008 23:15:42 -0000	1.62
+++ config-generic	29 Jan 2008 22:33:46 -0000	1.63
@@ -1305,7 +1305,7 @@
 CONFIG_TMD_HERMES=m
 CONFIG_USB_ATMEL=m
 CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WEXT=m
+CONFIG_USB_NET_RNDIS_WLAN=m
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
 


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.391
retrieving revision 1.392
diff -u -r1.391 -r1.392
--- kernel.spec	29 Jan 2008 00:35:59 -0000	1.391
+++ kernel.spec	29 Jan 2008 22:33:46 -0000	1.392
@@ -620,11 +620,10 @@
 Patch610: linux-2.6-defaults-fat-utf8.patch
 Patch660: linux-2.6-libata-ali-atapi-dma.patch
 Patch670: linux-2.6-ata-quirk.patch
-Patch679: linux-2.6-wireless-reverts.patch
 Patch680: linux-2.6-wireless.patch
 Patch681: linux-2.6-wireless-pending.patch
 Patch690: linux-2.6-at76.patch
-Patch691: linux-2.6-rndis_wext.patch
+Patch691: linux-2.6-rndis_wlan.patch
 Patch692: linux-2.6-ath5k-use-soft-wep.patch
 Patch693: linux-2.6-wireless-b43-reject-new-firmware.patch
 Patch820: linux-2.6-compile-fixes.patch
@@ -1136,22 +1135,18 @@
 # ia64 ata quirk
 ApplyPatch linux-2.6-ata-quirk.patch
 
-ApplyPatch linux-2.6-wireless-reverts.patch -R
-# wireless patches headed for 2.6.24
-ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.25
+ApplyPatch linux-2.6-wireless.patch
+# wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
 
 # Add misc wireless bits from upstream wireless tree
 ApplyPatch linux-2.6-at76.patch
-ApplyPatch linux-2.6-rndis_wext.patch
+ApplyPatch linux-2.6-rndis_wlan.patch
 
 # Make ath5k use software WEP
 ApplyPatch linux-2.6-ath5k-use-soft-wep.patch
 
-# reject too-new b43 firmware
-ApplyPatch linux-2.6-wireless-b43-reject-new-firmware.patch
-
 # implement smarter atime updates support.
 ApplyPatch linux-2.6-smarter-relatime.patch
 
@@ -1777,6 +1772,11 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Tue Jan 29 2008 John W. Linville <linville at redhat.com>
+- A few more wireless fixes for 2.6.25
+- Some post-2.6.25 wireless updates
+- Actually, we support the new b43 firmware...
+
 * Mon Jan 28 2008 Chuck Ebbert <cebbert at redhat.com>
 - Strip extra leading slashes in selinux filenames.
 - wireless: reject too-new b43 firmware

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.25 -r 1.26 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- linux-2.6-wireless-pending.patch	23 Jan 2008 03:35:14 -0000	1.25
+++ linux-2.6-wireless-pending.patch	29 Jan 2008 22:33:46 -0000	1.26
@@ -1,126214 +1,4063 @@
-commit 9fa8e14e585485cec9b2dfbee2c0922bac0841dd
-Author: Bruno Randolf <bruno at thinktube.com>
-Date:   Mon Jan 21 11:09:46 2008 +0900
-
-    ath5k: always extend rx timestamp with tsf
-    
-    always extend the rx timestamp with the local TSF, since this information is
-    also needed for proper IBSS merging. this is done in the tasklet for now, maybe
-    has to be moved to the interrupt handler like in madwifi.
-    
-    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
-    
-    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 584396cce428867706cd07f038815982df011576
-Author: Bruno Randolf <bruno at thinktube.com>
-Date:   Sat Jan 19 18:18:41 2008 +0900
-
-    ath5k: configure backoff for IBSS beacon queue
-    
-    in "11.1.2.2 Beacon generation in an IBSS" the IEEE802.11 standard says, each
-    STA should... "b) Calculate a random delay uniformly distributed in the range
-    between zero and twice aCWmin × aSlotTime,".
-    
-    configure cwmin and cwmax of the beacon queue in IBSS mode according to this.
-    unfortunately beacon backoff does not work reliably yet, so i suspect we have a
-    problem somewhere else, since the same settings (and similar beacon timer
-    configuration) work for madwifi.
-    
-    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
-    
-    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit bcee08a623fac1b1089c26476277fe339eb51e31
-Author: Bruno Randolf <bruno at thinktube.com>
-Date:   Sat Jan 19 18:18:21 2008 +0900
-
-    ath5k: use SWBA to detect IBSS HW merges
-    
-    use SWBA (software beacon alert) interrupts to keep track of the next beacon
-    time und check if a HW merge (automatic TSF update) has happened on every
-    received beacon with the same BSSID.
-    
-    this is necessary because the atheros hardware will silently update the local
-    TSF in IBSS mode, but not its beacon timers. if the TSF is ahead of the beacon
-    timers no beacons are sent until the timers wrap around (typically after about
-    1 minute).
-    
-    this solution is not very nice, since we have to look into every beacon, but
-    there is apparently no other way to detect HW merges.
-    
-    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
-    drivers/net/wireless/ath5k/base.h:      Changes-licensed-under: 3-Clause-BSD
-    
-    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 6dc94fc9c313cf50cdef52f4bd736382491a70ee
-Author: Bruno Randolf <bruno at thinktube.com>
-Date:   Sat Jan 19 18:17:59 2008 +0900
-
-    ath5k: better beacon timer calculation
-    
-    update ath5k_beacon_update_timers() for better beacon timer calculation in a
-    variety of situations. most important is the possibility to call it with the
-    timestamp of a received beacon, when we detected that a HW merge has happened
-    and we need to reconfigure the beacon timers based on that.
-    
-    we call this from the mac80211 callback reset_tsf now instead of beacon_update,
-    and there will be more use of it in the next patch.
-    
-    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
-    
-    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit ded271e319d5c1481f3a3ae024b25f09864f34c9
-Author: Bruno Randolf <bruno at thinktube.com>
-Date:   Fri Jan 18 21:51:40 2008 +0900
-
-    ath5k: beacon interval is in TU
-    
-    the beacon interval is passed by mac80211 in TU already, so we can directly use
-    it without conversion. also update the comments about TU (1 TU is defined by
-    802.11 as 1024usec).
-    
-    drivers/net/wireless/ath5k/ath5k.h:     Changes-licensed-under: ISC
-    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
-    drivers/net/wireless/ath5k/base.h:      Changes-licensed-under: 3-Clause-BSD
-    
-    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 8ea9e63cadc2c116029c87c06d4c697ba89eb5fc
-Author: Bruno Randolf <bruno at thinktube.com>
-Date:   Fri Jan 18 21:51:19 2008 +0900
-
-    ath5k: use 3 instead of 0x00000003
-    
-    reviewed beacon timer initialization with register traces from madwifi: what we
-    are doing is correct :). one minor fix: use 3 instead of 0x00000003 - it's more
-    readable.
-    
-    drivers/net/wireless/ath5k/hw.c:        Changes-licensed-under: ISC
-    
-    Signed-off-by: Bruno Randolf <bruno at thinktube.com>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 5a4357185994d38c890f762def993105a9bbd4f7
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Tue Jan 22 20:23:34 2008 +0100
-
-    b43: Fix MAC control and microcode init
-    
-    This zeros out all microcode related memory before loading
-    the microcode.
-    
-    This also fixes initialization of the MAC control register.
-    The _only_ place where we overwrite the contents of the MAC control
-    register is at the beginning of b43_chip_init().
-    All other places must do read() -> mask/set -> write() to not
-    overwrite existing bits.
-    
-    This also adds a longer delay for waiting for the microcode
-    to initialize itself. It seems that the current timeout is sufficient
-    on all available devices, but there's no real reason why we shouldn't
-    wait for up to one second. Slow embedded devices might exist.
-    Better safe than sorry.
-    
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 980dff0323602abd34ff95e7e7c6af6360ef640f
-Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-Date:   Tue Jan 22 15:22:29 2008 +0900
-
-    WEXT: remove unused variable
-    
-    As event_type_pk_size[] is not used,  Remove it.
-    
-    Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 44f85d46709f2e88b087f4b84915bb593ea2a352
-Author: John W. Linville <linville at tuxdriver.com>
-Date:   Mon Jan 21 15:36:05 2008 -0500
-
-    ath5k: reset key cache after resume
-    
-    Otherwise it may be impossible to connected to an open network after a
-    resume.
-    
-    This is a modified version of an original patch by
-    Alex Eskin <alexeskin at yahoo.com>:
-    
-    	https://bugzilla.redhat.com/show_bug.cgi?id=425950#c8
-    
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit b963fe03c992e9b166bce2def8b88a50eb03fe30
-Author: John W. Linville <linville at tuxdriver.com>
-Date:   Mon Jan 21 15:36:04 2008 -0500
-
-    ath5k: use AR5K_KEYTABLE_SIZE when initializing key table
-    
-    ...instead of using AR5K_KEYCACHE_SIZE, which would seem to be a
-    typo/thinko...
-    
-    Signed-off-by: John W. Linville <linville at tuxdriver.com>
-
-commit 78b71609d4dc363326a963c5ec23c2b933101a12
-Author: Michael Buesch <mb at bu3sch.de>
-Date:   Mon Jan 21 19:55:09 2008 +0100
+commit a1b8c36ffedc73655585d5377bb3609c9771a835
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Sun Jan 27 15:06:23 2008 +0200
 
-    b43: Fix firmware caching
-    
-    We must also store the ID string (filename) for the cached firmware blobs
-    and verify that we really have the right firmware cached before using it.
-    If we don't have the right fw cached, we must free it and request the
-    correct blobs.
+    iwlwifi: enable 802.11n in Kconfig
     
-    This fixes bandswitch on A/B/G multi-PHY devices.
+    This patch removes 'IWL4965_HT: depends on n'  from iwlwifi's Kconfig
+    1. 11n is functional so no need to make it invisible in the configuration
+    2. Latest Johannes patch 'cfg80211 API for channels/bitrates, mac80211 and
[...129441 lines suppressed...]
+-#ifdef CONFIG_IWL4965_HT_AGG
+-extern int iwl4965_mac_ht_tx_agg_start(struct ieee80211_hw *hw, u8 *da,
+-				   u16 tid, u16 *start_seq_num);
+-extern int iwl4965_mac_ht_tx_agg_stop(struct ieee80211_hw *hw, u8 *da,
+-				  u16 tid, int generator);
+-extern void iwl4965_turn_off_agg(struct iwl4965_priv *priv, u8 tid);
+-extern void iwl4965_tl_get_stats(struct iwl4965_priv *priv,
+-				struct ieee80211_hdr *hdr);
+-#endif /* CONFIG_IWL4965_HT_AGG */
++				    const u8 *addr, u16 tid, u16 *ssn);
++extern int iwl4965_check_empty_hw_queue(struct iwl4965_priv *priv, int sta_id,
++					u8 tid, int txq_id);
+ #endif /*CONFIG_IWL4965_HT */
+ /* Structures, enum, and defines specific to the 4965 */
  
- 	kfree(buf);
- out:
-@@ -581,29 +632,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
- 	.write32	= ssb_pci_write32,
+@@ -798,18 +793,6 @@ struct iwl4965_kw {
+ 	size_t size;
  };
  
--static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len)
-+static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len, u16 size)
- {
- 	int i, pos = 0;
+-#define TID_QUEUE_CELL_SPACING 50	/*mS */
+-#define TID_QUEUE_MAX_SIZE     20
+-#define TID_ROUND_VALUE        5	/* mS */
+-#define TID_MAX_LOAD_COUNT     8
+-
+-#define TID_MAX_TIME_DIFF ((TID_QUEUE_MAX_SIZE - 1) * TID_QUEUE_CELL_SPACING)
+-#define TIME_WRAP_AROUND(x, y) (((y) > (x)) ? (y) - (x) : (0-(x)) + (y))
+-
+-#define TID_ALL_ENABLED		0x7f
+-#define TID_ALL_SPECIFIED       0xff
+-#define TID_AGG_TPT_THREHOLD    0x0
+-
+ #define IWL_CHANNEL_WIDTH_20MHZ   0
+ #define IWL_CHANNEL_WIDTH_40MHZ   1
  
--	for (i = 0; i < SSB_SPROMSIZE_WORDS; i++) {
-+	for (i = 0; i < size; i++)
- 		pos += snprintf(buf + pos, buf_len - pos - 1,
- 				"%04X", swab16(sprom[i]) & 0xFFFF);
--	}
- 	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
+@@ -834,37 +817,7 @@ struct iwl4965_kw {
  
- 	return pos + 1;
- }
+ #define TX_POWER_IWL_ILLEGAL_VOLTAGE -10000
  
--static int hex2sprom(u16 *sprom, const char *dump, size_t len)
-+static int hex2sprom(u16 *sprom, const char *dump, size_t len, u16 size)
- {
- 	char tmp[5] = { 0 };
- 	int cnt = 0;
- 	unsigned long parsed;
+-struct iwl4965_traffic_load {
+-	unsigned long time_stamp;
+-	u32 packet_count[TID_QUEUE_MAX_SIZE];
+-	u8 queue_count;
+-	u8 head;
+-	u32 total;
+-};
+-
+-#ifdef CONFIG_IWL4965_HT_AGG
+-/**
+- * struct iwl4965_agg_control
+- * @requested_ba: bit map of tids requesting aggregation/block-ack
+- * @granted_ba: bit map of tids granted aggregation/block-ack
+- */
+-struct iwl4965_agg_control {
+-	unsigned long next_retry;
+-	u32 wait_for_agg_status;
+-	u32 tid_retry;
+-	u32 requested_ba;
+-	u32 granted_ba;
+-	u8 auto_agg;
+-	u32 tid_traffic_load_threshold;
+-	u32 ba_timeout;
+-	struct iwl4965_traffic_load traffic_load[TID_MAX_LOAD_COUNT];
+-};
+-#endif				/*CONFIG_IWL4965_HT_AGG */
+-
+ struct iwl4965_lq_mngr {
+-#ifdef CONFIG_IWL4965_HT_AGG
+-	struct iwl4965_agg_control agg_ctrl;
+-#endif
+ 	spinlock_t lock;
+ 	s32 max_window_size;
+ 	s32 *expected_tpt;
+@@ -877,7 +830,6 @@ struct iwl4965_lq_mngr {
+ 	u8 lq_ready;
+ };
  
--	if (len < SSB_SPROMSIZE_BYTES * 2)
-+	if (len < size * 2)
- 		return -EINVAL;
+-
+ /* Sensitivity and chain noise calibration */
+ #define INTERFERENCE_DATA_AVAILABLE	__constant_cpu_to_le32(1)
+ #define INITIALIZATION_VALUE		0xFFFF
+@@ -1265,11 +1217,7 @@ struct iwl4965_priv {
+ #endif
+ 	struct work_struct statistics_work;
+ 	struct timer_list statistics_periodic;
+-
+-#ifdef CONFIG_IWL4965_HT_AGG
+-	struct work_struct agg_work;
+-#endif
+-};				/*iwl4965_priv */
++}; /*iwl4965_priv */
  
--	while (cnt < SSB_SPROMSIZE_WORDS) {
-+	while (cnt < size) {
- 		memcpy(tmp, dump, 4);
- 		dump += 4;
- 		parsed = simple_strtoul(tmp, NULL, 16);
-@@ -627,7 +677,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
- 	if (!bus)
- 		goto out;
- 	err = -ENOMEM;
--	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
-+	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
- 	if (!sprom)
- 		goto out;
- 
-@@ -640,7 +690,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
- 	sprom_do_read(bus, sprom);
- 	mutex_unlock(&bus->pci_sprom_mutex);
- 
--	count = sprom2hex(sprom, buf, PAGE_SIZE);
-+	count = sprom2hex(sprom, buf, PAGE_SIZE, bus->sprom_size);
- 	err = 0;
- 
- out_kfree:
-@@ -662,15 +712,15 @@ static ssize_t ssb_pci_attr_sprom_store(
- 	if (!bus)
- 		goto out;
- 	err = -ENOMEM;
--	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
-+	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
- 	if (!sprom)
- 		goto out;
--	err = hex2sprom(sprom, buf, count);
-+	err = hex2sprom(sprom, buf, count, bus->sprom_size);
- 	if (err) {
- 		err = -EINVAL;
- 		goto out_kfree;
- 	}
--	err = sprom_check_crc(sprom);
-+	err = sprom_check_crc(sprom, bus->sprom_size);
- 	if (err) {
- 		err = -EINVAL;
- 		goto out_kfree;
-diff -up linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt
---- linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-22 21:02:03.000000000 -0500
-+++ linux-2.6.23.noarch/Documentation/feature-removal-schedule.txt	2008-01-22 21:19:38.000000000 -0500
-@@ -332,4 +332,36 @@ Why:	This driver has been marked obsolet
- 	2.4 or later kernels, provides richer features and is more robust.
- Who:	Stephen Hemminger <shemminger at linux-foundation.org>
- 
-+What:	bcm43xx wireless network driver
-+When:	2.6.26
-+Files:	drivers/net/wireless/bcm43xx
-+Why:	This driver's functionality has been replaced by the
-+	mac80211-based b43 and b43legacy drivers.
-+Who:	John W. Linville <linville at tuxdriver.com>
-+
-+---------------------------
-+
-+What:	ieee80211 softmac wireless networking component
-+When:	2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
-+Files:	net/ieee80211/softmac
-+Why:	No in-kernel drivers will depend on it any longer.
-+Who:	John W. Linville <linville at tuxdriver.com>
-+
- ---------------------------
-+
-+What:	rc80211-simple rate control algorithm for mac80211
-+When:	2.6.26
-+Files:	net/mac80211/rc80211-simple.c
-+Why:	This algorithm was provided for reference but always exhibited bad
-+	responsiveness and performance and has some serious flaws. It has been
-+	replaced by rc80211-pid.
-+Who:	Stefano Brivio <stefano.brivio at polimi.it>
-+
-+---------------------------
-+
-+What:	b43 support for firmware revision < 410
-+When:	July 2008
-+Why:	The support code for the old firmware hurts code readability/maintainability
-+	and slightly hurts runtime performance. Bugfixes for the old firmware
-+	are not provided by Broadcom anymore.
-+Who:	Michael Buesch <mb at bu3sch.de>
+ static inline int iwl4965_is_associated(struct iwl4965_priv *priv)
+ {

linux-2.6-wireless.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.19 -r 1.20 linux-2.6-wireless.patch
Index: linux-2.6-wireless.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless.patch,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- linux-2.6-wireless.patch	23 Jan 2008 03:35:16 -0000	1.19
+++ linux-2.6-wireless.patch	29 Jan 2008 22:33:46 -0000	1.20
@@ -1,49 +1,127514 @@
-diff -up linux-2.6.23.noarch/net/rfkill/rfkill.c.orig linux-2.6.23.noarch/net/rfkill/rfkill.c
---- linux-2.6.23.noarch/net/rfkill/rfkill.c.orig	2008-01-22 21:02:35.000000000 -0500
-+++ linux-2.6.23.noarch/net/rfkill/rfkill.c	2008-01-22 21:06:36.000000000 -0500
-@@ -392,11 +392,14 @@ int rfkill_register(struct rfkill *rfkil
- 	rfkill_led_trigger_register(rfkill);
- 
- 	error = rfkill_add_switch(rfkill);
--	if (error)
-+	if (error) {
-+		rfkill_led_trigger_unregister(rfkill);
- 		return error;
+commit ec945b84a6a23c0afed6a216c6a2bdeec5c2e6d9
+Author: Marcin Juszkiewicz <openembedded at haerwu.biz>
+Date:   Tue Jan 29 09:42:53 2008 +0100
+
+    Add another Prism2 card to hostap
+    
+    Card reported by Ångström user:
+    http://bugs.openembedded.net/show_bug.cgi?id=3236
+    
+    Socket 1:
+       product info: "Wireless LAN", "11Mbps PC Card", "Version 01.02", ""
+       manfid: 0x0156, 0x0002
+       function: 6 (network)
+    
+    Signed-off-by: Marcin Juszkiewicz <openembedded at haerwu.biz>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 50980f96b132c2a3554a1a3230aa0c30d9c15857
+Author: Michal Piotrowski <michal.k.k.piotrowski at gmail.com>
+Date:   Tue Jan 29 00:12:32 2008 +0200
+
+    hostap_80211.h: remove duplicate prototype
+    
+    There were two identical prototypes for hostap_80211_rx() in
+    drivers/net/wireless/hostap/hostap_80211.h.
+    
+    This patch fixes kernel Bugzilla #8930.
+    
+    Reported by Christoph Burger-Scheidlin.
+    
+    Signed-off-by: Adrian Bunk <bunk at kernel.org>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 73045370e763e400a21bf87cb7ff71a4adc2ea72
+Author: Cyrill Gorcunov <gorcunov at gmail.com>
+Date:   Sat Jan 26 19:09:36 2008 +0300
+
+    wireless: iwlwifi3945/4965 - fix incorrect counting of memory
+    
+    This patch does fix incorrect counting of memory allocated by kmalloc.
+    It seems that could lead to allocated memory overrun and corrupt
+    nearlaid memory area.
+    
+    Signed-off-by: Cyrill Gorcunov <gorcunov at gmail.com>
+    Acked-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8aad54411a07f30046e9d0377f4111c2ab418dc0
+Author: Holger Schurig <hs4233 at mail.mn-solutions.de>
+Date:   Fri Jan 25 14:15:48 2008 +0100
+
+    libertas: fix interrupt while removing driver
+    
+    Previously I've got an interrupt while removing the driver.
+    
+    Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Acked-by: Dan Williams <dcbw at redhat.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 11467d3a1b408c1128cd657fd90e2380b96788bd
+Author: Ihar Hrachyshka <ihar.hrachyshka at promwad.com>
+Date:   Fri Jan 25 14:15:00 2008 +0100
+
+    libertas: fix memory alignment problems on the blackfin
+    
+    Fixing unaligned memory access on the blackfin architecture (maybe on the
+    ARM also).
+    
+    Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka at promwad.com>
+    Signed-off-by: Holger Schurig <hs4233 at mail.mn-solutions.de>
+    Acked-by: Dan Williams <dcbw at redhat.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 13a0d02fda3226dcea121a758aa1c2d789106156
+Author: Eric Sandeen <sandeen at redhat.com>
+Date:   Thu Jan 24 15:47:39 2008 -0500
+
+    iwlwifi: correct math in elapsed_jiffies
+    
+    w/o the first change: if end == start you get MAX_JIFFY_OFFSET which
+    isn't what you want...
+    
+    For the latter I think to be technically correct you need the +1 to
+    account for the jiffy between MAX_JIFFY_OFFSET and 0
+    
+    (hmm w/ the 2nd change the first isn't strictly needed... ah well)
+    
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit ea8d544a7aad52402d6ada6abb1b59799f3f28ef
+Author: Iñaky Pérez-González <inaky.perez-gonzalez at intel.com>
+Date:   Wed Jan 23 13:40:27 2008 -0800
+
+    rfkill: add the WiMAX radio type
+    
+    Teach rfkill about wimax radios.
+    
+    Had to define a KEY_WIMAX as a 'key for disabling only wimax radios',
+    as other radio technologies have. This makes sense as hardware has
+    specific keys for disabling specific radios.
+    
+    The RFKILL enabling part is, otherwise, a copy and paste of any other
+    radio technology.
+    
+    Signed-off-by: Inaky Perez-Gonzalez <inaky at linux.intel.com>
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c4dbdeb1c5258ab139f6f5caaa4ec8061ef76b62
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 23 21:44:15 2008 +0100
+
+    b43: Drop packets that we are not able to encrypt
+    
+    We must not transmit packets we're not able to encrypt.
+    
+    This fixes a bug where in a tiny timeframe after machine resume
+    packets can get sent unencrypted and might leak information.
+    
+    This also fixes three small resource leakages I spotted while fixing
+    the security problem. Properly deallocate the DMA slots in any DMA
+    allocation error path.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 687cb9b13036dadd22ce412139643315bcf7e245
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Wed Jan 23 21:10:56 2008 +0100
+
+    b43: Fix suspend/resume
+    
+    This fixes suspend/resume.
+    
+    We must not overwrite the MAC addresses on resume. Otherwise
+    the card won't ACK any packets anymore.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 886d8a3a4951f776b04e1062d1819428dc0aa017
+Author: Gregory Greenman <gregory.greenman at intel.com>
+Date:   Wed Jan 23 10:15:21 2008 -0800
+
+    iwlwifi: Fix uCode error on association
+    
+    The problem is that priv->assoc_id is set when assoc. resp frame is
+    received. But, when it is set, LQ cmd is still not sent to the uCode, it is
+    done from bg_post_assoc, which is called through a workqueue.
+    
+    On the other hand, when a tx arrives at the moment when this flag is set,
+    but LQ is still not sent, the if condition in tx_skb will not hold and
+    the frame will not be dropped.  Thus, it will be sent through
+    which is still not in the sta table in the uCoded.
+    
+    Signed-off-by: Gregory Greenman <gregory.greenman at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a1bc3f35aa5442733c932a3cc6cdb37f9d0bb0e5
+Author: Joonwoo Park <joonwpark81 at gmail.com>
+Date:   Wed Jan 23 10:15:20 2008 -0800
+
+    iwlwifi: do not schedule tasklet when rcv unused irq
+    
+    The nic controller's scheduler interrupt (CSR_INT_BIT_SCD) indicates
+    to the driver that scheduler finished to transmit the frame/frames.
+    This bit is not used and the tasklet should thus not be scheduled upon
+    its receipt.
+    
+    Signed-off-by: Joonwoo Park <joonwpark81 at gmail.com>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e826a78d5cd8f166a9b6678daab54eab14ca018d
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Wed Jan 23 10:15:19 2008 -0800
+
+    iwlwifi: cleanup usage of inline functions
+    
[...127158 lines suppressed...]
+-static int sprom_extract(struct ssb_bus *bus,
+-			 struct ssb_sprom *out, const u16 *in)
++static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
++			 const u16 *in, u16 size)
+ {
+ 	memset(out, 0, sizeof(*out));
+ 
+-	SPEX(revision, SSB_SPROM_REVISION, SSB_SPROM_REVISION_REV, 0);
+-	SPEX(crc, SSB_SPROM_REVISION, SSB_SPROM_REVISION_CRC,
+-	     SSB_SPROM_REVISION_CRC_SHIFT);
+-
++	out->revision = in[size - 1] & 0x00FF;
++	ssb_dprintk(KERN_DEBUG PFX "SPROM revision %d detected.\n", out->revision);
+ 	if ((bus->chip_id & 0xFF00) == 0x4400) {
+ 		/* Workaround: The BCM44XX chip has a stupid revision
+ 		 * number stored in the SPROM.
+ 		 * Always extract r1. */
+-		sprom_extract_r1(&out->r1, in);
++		out->revision = 1;
++		sprom_extract_r123(out, in);
++	} else if (bus->chip_id == 0x4321) {
++		/* the BCM4328 has a chipid == 0x4321 and a rev 4 SPROM */
++		out->revision = 4;
++		sprom_extract_r4(out, in);
+ 	} else {
+ 		if (out->revision == 0)
+ 			goto unsupported;
+-		if (out->revision >= 1 && out->revision <= 3)
+-			sprom_extract_r1(&out->r1, in);
+-		if (out->revision >= 2 && out->revision <= 3)
+-			sprom_extract_r2(&out->r2, in);
+-		if (out->revision == 3)
+-			sprom_extract_r3(&out->r3, in);
+-		if (out->revision >= 4)
++		if (out->revision >= 1 && out->revision <= 3) {
++			sprom_extract_r123(out, in);
++		}
++		if (out->revision == 4)
++			sprom_extract_r4(out, in);
++		if (out->revision >= 5)
+ 			goto unsupported;
+ 	}
+ 
+@@ -448,7 +486,7 @@ static int sprom_extract(struct ssb_bus 
+ unsupported:
+ 	ssb_printk(KERN_WARNING PFX "Unsupported SPROM revision %d "
+ 		   "detected. Will extract v1\n", out->revision);
+-	sprom_extract_r1(&out->r1, in);
++	sprom_extract_r123(out, in);
+ 	return 0;
+ }
+ 
+@@ -458,16 +496,29 @@ static int ssb_pci_sprom_get(struct ssb_
+ 	int err = -ENOMEM;
+ 	u16 *buf;
+ 
+-	buf = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
++	buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
+ 	if (!buf)
+ 		goto out;
++	bus->sprom_size = SSB_SPROMSIZE_WORDS_R123;
+ 	sprom_do_read(bus, buf);
+-	err = sprom_check_crc(buf);
++	err = sprom_check_crc(buf, bus->sprom_size);
+ 	if (err) {
+-		ssb_printk(KERN_WARNING PFX
+-			   "WARNING: Invalid SPROM CRC (corrupt SPROM)\n");
++		/* check for rev 4 sprom - has special signature */
++		if (buf[32] == 0x5372) {
++			kfree(buf);
++			buf = kcalloc(SSB_SPROMSIZE_WORDS_R4, sizeof(u16),
++				      GFP_KERNEL);
++			if (!buf)
++				goto out;
++			bus->sprom_size = SSB_SPROMSIZE_WORDS_R4;
++			sprom_do_read(bus, buf);
++			err = sprom_check_crc(buf, bus->sprom_size);
++		}
++		if (err)
++			ssb_printk(KERN_WARNING PFX "WARNING: Invalid"
++				   " SPROM CRC (corrupt SPROM)\n");
+ 	}
+-	err = sprom_extract(bus, sprom, buf);
++	err = sprom_extract(bus, sprom, buf, bus->sprom_size);
+ 
+ 	kfree(buf);
+ out:
+@@ -581,29 +632,28 @@ const struct ssb_bus_ops ssb_pci_ops = {
+ 	.write32	= ssb_pci_write32,
+ };
  
- 	rc = iwl_hw_nic_init(priv);
+-static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len)
++static int sprom2hex(const u16 *sprom, char *buf, size_t buf_len, u16 size)
+ {
+ 	int i, pos = 0;
+ 
+-	for (i = 0; i < SSB_SPROMSIZE_WORDS; i++) {
++	for (i = 0; i < size; i++)
+ 		pos += snprintf(buf + pos, buf_len - pos - 1,
+ 				"%04X", swab16(sprom[i]) & 0xFFFF);
+-	}
+ 	pos += snprintf(buf + pos, buf_len - pos - 1, "\n");
+ 
+ 	return pos + 1;
+ }
+ 
+-static int hex2sprom(u16 *sprom, const char *dump, size_t len)
++static int hex2sprom(u16 *sprom, const char *dump, size_t len, u16 size)
+ {
+ 	char tmp[5] = { 0 };
+ 	int cnt = 0;
+ 	unsigned long parsed;
+ 
+-	if (len < SSB_SPROMSIZE_BYTES * 2)
++	if (len < size * 2)
+ 		return -EINVAL;
+ 
+-	while (cnt < SSB_SPROMSIZE_WORDS) {
++	while (cnt < size) {
+ 		memcpy(tmp, dump, 4);
+ 		dump += 4;
+ 		parsed = simple_strtoul(tmp, NULL, 16);
+@@ -627,7 +677,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+ 	if (!bus)
+ 		goto out;
+ 	err = -ENOMEM;
+-	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
++	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
+ 	if (!sprom)
+ 		goto out;
+ 
+@@ -640,7 +690,7 @@ static ssize_t ssb_pci_attr_sprom_show(s
+ 	sprom_do_read(bus, sprom);
+ 	mutex_unlock(&bus->pci_sprom_mutex);
+ 
+-	count = sprom2hex(sprom, buf, PAGE_SIZE);
++	count = sprom2hex(sprom, buf, PAGE_SIZE, bus->sprom_size);
+ 	err = 0;
+ 
+ out_kfree:
+@@ -662,15 +712,15 @@ static ssize_t ssb_pci_attr_sprom_store(
+ 	if (!bus)
+ 		goto out;
+ 	err = -ENOMEM;
+-	sprom = kcalloc(SSB_SPROMSIZE_WORDS, sizeof(u16), GFP_KERNEL);
++	sprom = kcalloc(bus->sprom_size, sizeof(u16), GFP_KERNEL);
+ 	if (!sprom)
+ 		goto out;
+-	err = hex2sprom(sprom, buf, count);
++	err = hex2sprom(sprom, buf, count, bus->sprom_size);
+ 	if (err) {
+ 		err = -EINVAL;
+ 		goto out_kfree;
+ 	}
+-	err = sprom_check_crc(sprom);
++	err = sprom_check_crc(sprom, bus->sprom_size);
+ 	if (err) {
+ 		err = -EINVAL;
+ 		goto out_kfree;
+diff -up linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt
+--- linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig	2008-01-29 16:52:29.000000000 -0500
++++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-01-29 16:52:35.000000000 -0500
+@@ -332,4 +332,36 @@ Why:	This driver has been marked obsolet
+ 	2.4 or later kernels, provides richer features and is more robust.
+ Who:	Stephen Hemminger <shemminger at linux-foundation.org>
+ 
++What:	bcm43xx wireless network driver
++When:	2.6.26
++Files:	drivers/net/wireless/bcm43xx
++Why:	This driver's functionality has been replaced by the
++	mac80211-based b43 and b43legacy drivers.
++Who:	John W. Linville <linville at tuxdriver.com>
++
++---------------------------
++
++What:	ieee80211 softmac wireless networking component
++When:	2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
++Files:	net/ieee80211/softmac
++Why:	No in-kernel drivers will depend on it any longer.
++Who:	John W. Linville <linville at tuxdriver.com>
++
+ ---------------------------
++
++What:	rc80211-simple rate control algorithm for mac80211
++When:	2.6.26
++Files:	net/mac80211/rc80211-simple.c
++Why:	This algorithm was provided for reference but always exhibited bad
++	responsiveness and performance and has some serious flaws. It has been
++	replaced by rc80211-pid.
++Who:	Stefano Brivio <stefano.brivio at polimi.it>
++
++---------------------------
++
++What:	b43 support for firmware revision < 410
++When:	July 2008
++Why:	The support code for the old firmware hurts code readability/maintainability
++	and slightly hurts runtime performance. Bugfixes for the old firmware
++	are not provided by Broadcom anymore.
++Who:	Michael Buesch <mb at bu3sch.de>


--- linux-2.6-rndis_wext.patch DELETED ---


--- linux-2.6-wireless-b43-reject-new-firmware.patch DELETED ---


--- linux-2.6-wireless-reverts.patch DELETED ---




More information about the fedora-extras-commits mailing list