rpms/kernel/devel kernel.spec, 1.536, 1.537 linux-2.6-wireless-pending.patch, 1.38, 1.39 linux-2.6-wireless.patch, 1.29, 1.30

John W. Linville (linville) fedora-extras-commits at redhat.com
Tue Mar 25 18:43:39 UTC 2008


Author: linville

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

Modified Files:
	kernel.spec linux-2.6-wireless-pending.patch 
	linux-2.6-wireless.patch 
Log Message:
wireless fixes from 2008-03-24


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.536
retrieving revision 1.537
diff -u -r1.536 -r1.537
--- kernel.spec	25 Mar 2008 03:19:46 -0000	1.536
+++ kernel.spec	25 Mar 2008 18:42:30 -0000	1.537
@@ -1096,7 +1096,7 @@
 ApplyPatch linux-2.6-ata-quirk.patch
 
 # wireless patches headed for 2.6.25
-#ApplyPatch linux-2.6-wireless.patch
+ApplyPatch linux-2.6-wireless.patch
 # wireless patches headed for 2.6.26
 ApplyPatch linux-2.6-wireless-pending.patch
 ApplyPatch linux-2.6-wireless-fixups.patch
@@ -1751,6 +1751,17 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Thu Mar 25 2008 John W. Linville <linville at redhat.com>
+- wavelan_cs arm fix
+- arlan: fix warning when PROC_FS=n
+- rt2x00: Add id for Corega CG-WLUSB2GPX
+- b43: Fix DMA mapping leakage
+- b43: Remove irqs_disabled() sanity checks
+- iwlwifi: fix a typo in Kconfig message
+- MAINTAINERS: update iwlwifi git url
+- iwlwifi: fix __devexit_p points to __devexit functions
+- iwlwifi: mac start synchronization issue
+
 * Mon Mar 24 2008 Roland McGrath <roland at redhat.com>
 - utrace update
 

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.38 -r 1.39 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.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- linux-2.6-wireless-pending.patch	24 Mar 2008 20:49:42 -0000	1.38
+++ linux-2.6-wireless-pending.patch	25 Mar 2008 18:42:30 -0000	1.39
@@ -1,6 +1,4214 @@
+commit 2cd41eac2a895b01bd0824ba098f78b870136be2
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Tue Mar 11 16:17:15 2008 -0700
+
+    iwlwifi: fix bug to show hidden APs during scan
+    
+    Indirect scanning ('iwlist scan') should report information about
+    hidden APs. When an AP is hidden it does not respond to active scanning,
+    we thus have to use passive scanning to locate these APs.
+    
+    This fixes http://bughost.org/bugzilla/show_bug.cgi?id=1499
+    
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Tested-by: Bill Moss <bmoss at clemson.edu>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 3352880fca5d5564d0c9f23948b7e05d16519759
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Tue Mar 11 16:17:20 2008 -0700
+
+    iwlwifi: change rate number to a constant
+    
+    This patch moves a number to an understandable define
+    
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: Ron Rindjunsky <ron.rindjunsky at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit c794c989cab1369ae9e667ed5b77e6f813f9e2b3
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Tue Mar 11 16:17:19 2008 -0700
+
+    iwlwifi: Fix endianity in debug print
+    
+    This patch fix debug print out endianity issue for bitmap
+    Since u64 and le64 variables are casted to unsigned long long,
+    after patch 'wireless: correct warnings from using '%llx' for type 'u64'
+    also bitmaps need to be converted to native endianity
+    
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 42ff182a205f7a36771f54b93d8fa04a86aec166
+Author: Assaf Krauss <assaf.krauss at intel.com>
+Date:   Tue Mar 11 16:17:18 2008 -0700
+
+    iwlwifi: Use eeprom form iwlcore
+    
+    This patch puts in use eeprom from iwlcore module
+    
+    Signed-off-by: Assaf Krauss <assaf.krauss at intel.com>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 4707ca7feed461a8cbc3dd19cde5bc1451296f11
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Tue Mar 11 16:17:17 2008 -0700
+
+    iwlwifi: update copyright year
+    
+    Also fix a copy and paste error in header of iwl-core.c. This file
+    is not dual licensed.
+    
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8535c56523a1c999a381009ea794e47e04070432
+Author: Tomas Winkler <tomas.winkler at intel.com>
+Date:   Tue Mar 11 16:17:16 2008 -0700
+
+    iwlwifi: Use sta_bcast_id variable instead of BROADCAST_ID constant
+    
+    This patch removes iwlYYY_BROADCAST_ID from run time usage.
+    hw_setting.sta_bcast_id is used instead.
+    
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a968fa909c2a245ed4c4175de704fc184dbc6ba8
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Mon Mar 10 17:26:32 2008 +0100
+
+    ssb: Add SPROM/invariants support for PCMCIA devices
+    
+    This adds support for reading/writing the SPROM invariants
+    for PCMCIA based devices.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit bfc6c4d9238c3ee8324b35e0bf5a8ad565f2501a
+Author: Joe Perches <joe at perches.com>
+Date:   Sun Mar 9 16:55:10 2008 -0700
+
+    include/net/ieee80211.h - remove duplicate include
+    
+    Signed-off-by: Joe Perches <joe at perches.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit f6b32dc11fb7ac50baba66e0446f0d18a2b831e1
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Mon Mar 10 00:30:44 2008 +0100
+
+    rt2x00: Only strip preamble bit in rt2400pci
+    
+    Only rt2400pci can have the preamble bit set in the PLCP value,
+    for all other drivers it should not be cleared since that will
+    conflict with the plcp values for OFDM rates.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 17e0212fe66d07ffc2df8b034e35a12a187ffd19
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Mar 9 22:49:21 2008 +0100
+
+    rt2x00: Release rt2x00 2.1.4
+    
+    Version bump to 2.1.4
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 54e19697da963c5dd36f2827fe6936052854ccc8
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Mar 9 22:49:04 2008 +0100
+
+    rt2x00: Fix rt2400pci signal
+    
+    After sampling hundreds of RX frame descriptors,
+    the results were conclusive:
+    - The Ralink documentation regarding the SIGNAL and RSSI are wrong.
+    
+    It turns out that of the 5 BBR registers, we should not use BBR0 and BBR1
+    for SIGNAL and RSSI respectively, but actually BBR1 and BBR2.
+    BBR0 does show values, but the exact meaning remains unclear,
+    but they cannot be translated into a SIGNAL or RSSI field.
+    BBR3, BBR4 and BBR5 are always 0, so their meaning is unknown.
+    
+    As it turns out, the reported SIGNAL is the PLCP value, this
+    in contradiction to what was expected looking at rt2500pci which
+    only reported the PLCP values for OFDM rates and bitrate values
+    for CCK rates.
+    
+    This means we should let the driver raise the flag about the contents
+    of the SIGNAL field so rt2x00lib can always do the right thing based
+    on what the driver reports.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit d187f182a14f4d0b36f3595c416127e6a2290884
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Mar 9 22:48:46 2008 +0100
+
+    rt2x00: Fix RX DMA ring initialization
+    
+    Due to a terrible typo the RX DMA base address
+    was initialized to the beacon base address.
+    Obviously bad things happen with bugs like that....
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8d4e8648eb868e2c37797060953c4e3fbdc2d7bf
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Mar 9 22:48:08 2008 +0100
+
+    rt2x00: Fix basic rate initialization
+    
+    The basic rate which is configured in the register
+    should not match all supported rates, but only the _basic_ rates.
+    
+    Fix this by adding a new flag to the rt2x00_rate structure
+    and whenever the mode is changed, loop over all available rates
+    for that band to get the basic rate mask.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 2119e258add7af90c15bb9370f0b7d634aafb50e
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Sun Mar 9 22:47:43 2008 +0100
+
+    rt2x00: Always enable TSF ticking
+    
+    Whatever mode we are in, according to the legacy drivers
+    we should always enable TSF ticking/counting.
+    We should also always enable the TBCN/TBTT field,
[...6786 lines suppressed...]
  				   struct ieee80211_conf *conf)
  {
@@ -73403,8 +77611,8 @@
  
  	/* While philips SA2400 drive the PA bias from
 diff -up linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.24.noarch/drivers/net/wireless/adm8211.c
---- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-03-25 13:10:14.000000000 -0400
 @@ -48,6 +48,32 @@ static struct pci_device_id adm8211_pci_
  	{ 0 }
  };
@@ -73574,8 +77782,8 @@
  	err = ieee80211_register_hw(dev);
  	if (err) {
 diff -up linux-2.6.24.noarch/drivers/ssb/Makefile.orig linux-2.6.24.noarch/drivers/ssb/Makefile
---- linux-2.6.24.noarch/drivers/ssb/Makefile.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/Makefile	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/Makefile.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/Makefile	2008-03-25 13:10:14.000000000 -0400
 @@ -1,6 +1,7 @@
  # core
  ssb-y					+= main.o scan.o
@@ -73593,8 +77801,8 @@
  # b43 pci-ssb-bridge driver
  # Not strictly a part of SSB, but kept here for convenience
 diff -up linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig linux-2.6.24.noarch/drivers/ssb/pcmcia.c
---- linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/pcmcia.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/pcmcia.c	2008-03-25 13:10:14.000000000 -0400
 @@ -3,7 +3,7 @@
   * PCMCIA-Hostbus related functions
   *
@@ -74267,8 +78475,8 @@
 +	return err;
  }
 diff -up linux-2.6.24.noarch/drivers/ssb/main.c.orig linux-2.6.24.noarch/drivers/ssb/main.c
---- linux-2.6.24.noarch/drivers/ssb/main.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/main.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/main.c.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/main.c	2008-03-25 13:10:14.000000000 -0400
 @@ -14,6 +14,7 @@
  #include <linux/io.h>
  #include <linux/ssb/ssb.h>
@@ -74406,8 +78614,8 @@
  	bus_unregister(&ssb_bustype);
  }
 diff -up linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c.orig linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c
---- linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c.orig	2008-01-24 17:58:37.000000000 -0500
++++ linux-2.6.24.noarch/drivers/ssb/driver_mipscore.c	2008-03-25 13:10:14.000000000 -0400
 @@ -209,6 +209,7 @@ void ssb_mipscore_init(struct ssb_mipsco
  			/* fallthrough */
  		case SSB_DEV_PCI:
@@ -74417,8 +78625,8 @@
  		case SSB_DEV_USB20_HOST:
  			/* These devices get their own IRQ line if available, the rest goes on IRQ0 */
 diff -up linux-2.6.24.noarch/drivers/ssb/ssb_private.h.orig linux-2.6.24.noarch/drivers/ssb/ssb_private.h
---- linux-2.6.24.noarch/drivers/ssb/ssb_private.h.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/ssb_private.h	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/ssb_private.h.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/ssb_private.h	2008-03-25 13:10:14.000000000 -0400
 @@ -81,6 +81,7 @@ extern int ssb_pcmcia_switch_segment(str
  				     u8 seg);
  extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus,
@@ -74465,8 +78673,8 @@
  /* b43_pci_bridge.c */
  #ifdef CONFIG_SSB_B43_PCI_BRIDGE
 diff -up /dev/null linux-2.6.24.noarch/drivers/ssb/driver_gige.c
---- /dev/null	2008-03-24 08:05:25.710634313 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_gige.c	2008-03-24 16:43:58.000000000 -0400
+--- /dev/null	2008-03-25 08:11:28.199319816 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_gige.c	2008-03-25 13:10:14.000000000 -0400
 @@ -0,0 +1,294 @@
 +/*
 + * Sonics Silicon Backplane
@@ -74763,8 +78971,8 @@
 +	return ssb_driver_register(&ssb_gige_driver);
 +}
 diff -up linux-2.6.24.noarch/drivers/ssb/pci.c.orig linux-2.6.24.noarch/drivers/ssb/pci.c
---- linux-2.6.24.noarch/drivers/ssb/pci.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/pci.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/pci.c.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/pci.c	2008-03-25 13:10:14.000000000 -0400
 @@ -227,7 +227,7 @@ static u8 ssb_sprom_crc(const u16 *sprom
  	return crc;
  }
@@ -74981,8 +79189,8 @@
  	if (err)
  		goto out;
 diff -up linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c
---- linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c	2008-03-25 13:10:14.000000000 -0400
 @@ -353,6 +353,16 @@ void ssb_chipco_watchdog_timer_set(struc
  	chipco_write32(cc, SSB_CHIPCO_WATCHDOG, ticks);
  }
@@ -75001,8 +79209,8 @@
  {
  	return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask;
 diff -up linux-2.6.24.noarch/drivers/ssb/Kconfig.orig linux-2.6.24.noarch/drivers/ssb/Kconfig
---- linux-2.6.24.noarch/drivers/ssb/Kconfig.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/Kconfig	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/Kconfig.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/Kconfig	2008-03-25 13:10:14.000000000 -0400
 @@ -20,6 +20,10 @@ config SSB
  
  	  If unsure, say N.
@@ -75045,8 +79253,8 @@
 +
  endmenu
 diff -up linux-2.6.24.noarch/drivers/ssb/embedded.c.orig linux-2.6.24.noarch/drivers/ssb/embedded.c
---- linux-2.6.24.noarch/drivers/ssb/embedded.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/embedded.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/embedded.c.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/embedded.c	2008-03-25 13:10:14.000000000 -0400
 @@ -10,6 +10,9 @@
  
  #include <linux/ssb/ssb.h>
@@ -75149,8 +79357,8 @@
 +	return -ENODEV;
 +}
 diff -up linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c
---- linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c.orig	2008-03-24 16:35:44.000000000 -0400
++++ linux-2.6.24.noarch/drivers/ssb/driver_pcicore.c	2008-03-25 13:10:14.000000000 -0400
 @@ -60,77 +60,6 @@ static DEFINE_SPINLOCK(cfgspace_lock);
  /* Core to access the external PCI config space. Can only have one. */
  static struct ssb_pcicore *extpci_core;
@@ -75326,8 +79534,8 @@
  {
  	u32 val;
 diff -up /dev/null linux-2.6.24.noarch/drivers/ssb/sprom.c
---- /dev/null	2008-03-24 08:05:25.710634313 -0400
-+++ linux-2.6.24.noarch/drivers/ssb/sprom.c	2008-03-24 16:43:58.000000000 -0400
+--- /dev/null	2008-03-25 08:11:28.199319816 -0400
++++ linux-2.6.24.noarch/drivers/ssb/sprom.c	2008-03-25 13:10:14.000000000 -0400
 @@ -0,0 +1,133 @@
 +/*
 + * Sonics Silicon Backplane
@@ -75463,8 +79671,8 @@
 +	return err ? err : count;
 +}
 diff -up linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt.orig linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt
---- linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt.orig	2008-03-24 16:35:35.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/laptops/acer-wmi.txt	2008-03-25 13:10:14.000000000 -0400
 @@ -80,7 +80,7 @@ once you enable the radio, will depend o
  e.g. With the BCM4318 on the Acer Aspire 5020 series:
  
@@ -75475,8 +79683,8 @@
  Wireless radio control is unconditionally enabled - all Acer laptops that support
  acer-wmi come with built-in wireless. However, should you feel so inclined to
 diff -up linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt.orig linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt
---- linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt.orig	2008-01-24 17:58:37.000000000 -0500
++++ linux-2.6.24.noarch/Documentation/networking/bcm43xx.txt	2008-03-25 13:10:14.000000000 -0400
 @@ -1,89 +0,0 @@
 -
 -			BCM43xx Linux Driver Project
@@ -75568,8 +79776,8 @@
 -and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
 -essential for solving any problems.
 diff -up /dev/null linux-2.6.24.noarch/Documentation/DocBook/mac80211.tmpl
---- /dev/null	2008-03-24 08:05:25.710634313 -0400
-+++ linux-2.6.24.noarch/Documentation/DocBook/mac80211.tmpl	2008-03-24 16:43:58.000000000 -0400
+--- /dev/null	2008-03-25 08:11:28.199319816 -0400
++++ linux-2.6.24.noarch/Documentation/DocBook/mac80211.tmpl	2008-03-25 13:10:14.000000000 -0400
 @@ -0,0 +1,335 @@
 +<?xml version="1.0" encoding="UTF-8"?>
 +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
@@ -75907,8 +80115,8 @@
 +  </part>
 +</book>
 diff -up linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig linux-2.6.24.noarch/Documentation/DocBook/Makefile
---- linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig	2008-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/DocBook/Makefile	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/DocBook/Makefile.orig	2008-03-25 13:06:07.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/DocBook/Makefile	2008-03-25 13:10:14.000000000 -0400
 @@ -11,7 +11,8 @@ DOCBOOKS := wanbook.xml z8530book.xml mc
  	    procfs-guide.xml writing_usb_driver.xml networking.xml \
  	    kernel-api.xml filesystems.xml lsm.xml usb.xml \
@@ -75920,8 +80128,8 @@
  ###
  # The build process is as follows (targets):
 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-03-24 16:43:26.000000000 -0400
-+++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-03-24 16:43:58.000000000 -0400
+--- linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt.orig	2008-03-24 16:35:48.000000000 -0400
++++ linux-2.6.24.noarch/Documentation/feature-removal-schedule.txt	2008-03-25 13:10:14.000000000 -0400
 @@ -230,33 +230,6 @@ Who:	Jean Delvare <khali at linux-fr.org>
  
  ---------------------------

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.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- linux-2.6-wireless.patch	14 Mar 2008 21:25:59 -0000	1.29
+++ linux-2.6-wireless.patch	25 Mar 2008 18:42:30 -0000	1.30
@@ -1,518 +1,408 @@
-commit 1682fe6de206bd1e937529cbb393915e5ea40b2c
-Author: Ivo van Doorn <ivdoorn at gmail.com>
-Date:   Thu Mar 13 15:38:03 2008 +0100
-
-    rt2x00: Add suspend/resume handlers to rt2x00rfkill
-    
-    Add suspend/resume handlers to rt2x00rfkill to have it stop
-    the input-polldev and prevent it from calling rt2x00 during
-    suspend period. This could lead to a NULL pointer fault when
-    rt2x00 suspended, but polldev send a request, because
-    the csr_addr is NULL.
-    
-    Also don't let the rfkill allocation/registration block
-    the initialization of the entire device. Just print a warning
-    and continue as if nothing happened.
+commit 50b48c24c78024e267356b1881bc169556be6184
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sun Mar 23 01:08:22 2008 +0100
+
+    b43: Remove irqs_disabled() sanity checks
     
-    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Remove all irqs_disabled() sanity checks, as they are not safe on
+    a RT-enabled kernel and will trigger bogus warnings.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit f50e4a8494a74bdbc0f86f1430a4cca2a4f28799
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Wed Mar 12 16:13:31 2008 -0400
+commit d62146743a31e6c327249bba2b1422cff4d7a50b
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sat Mar 22 22:04:45 2008 +0100
 
-    ath5k: disable irq handling in ath5k_hw_detach()
+    b43: Fix DMA mapping leakage
     
-    Once ah has been freed, it may not be accessed.  Set ATH_STAT_INVALID
-    bit to make the interrupt handler return IRQ_NONE without accessing ah.
+    This fixes a DMA mapping leakage in the case where we reject a DMA
+    buffer because of its address.
     
-    This fixes oops on unload with CONFIG_DEBUG_SHIRQ enabled.
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Cc: Christian Casteyde <casteyde.christian at free.fr>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e7d51b8c7b0fc99482ce16616f23ee3ebbc43dff
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Fri Mar 21 13:53:41 2008 -0700
+
+    iwlwifi: fix __devexit_p points to __devexit functions
+    
+    The iwlxxxx_pci_remove functions are not needed when drivers are not
+    compiled as modules - they can thus be discarded at kernel link time.
+    This is already captured by having them as __devexit_p in the pci_driver
+    struct - these are supposed to be pointers to __devexit functions, but was not.
+    This is now fixed.
+    
+    This problem was reported by Toralf Forster when testing the compilation of
+    2.6.25-rc6.
+    
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    CC: Toralf Forster <toralf.foerster at gmx.de>
+    Signed-off-by: Tomas Winkler <tomas.winkler at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e0bdc6ae87e39d5dd922f294fa2f20219e51fe8c
+Author: Reinette Chatre <reinette.chatre at intel.com>
+Date:   Fri Mar 21 13:53:40 2008 -0700
+
+    MAINTAINERS: update iwlwifi git url
     
-    Signed-off-by: Pavel Roskin <proski at gnu.org>
-    Acked-by: Nick Kossifidis <mickflemm at gmail.com>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 5abdc49d6e521126ed4c15e913a5c30f6dd95e6b
-Author: Harvey Harrison <harvey.harrison at gmail.com>
-Date:   Wed Mar 12 17:51:04 2008 +0100
+commit 2bccacf8154922830950089a04aa979f98bd400a
+Author: John W. Linville <linville at tuxdriver.com>
+Date:   Thu Mar 20 16:19:04 2008 -0400
 
-    b43: phy.c fix typo in register write
+    arlan: fix warning when PROC_FS=n
     
-    Commit 61bca6eb85c863603d6054530e2f65c3b9aba85b b43: rewrite A PHY initialization
-    has a typo, the result of the register read should be masked, not the
-    register offset.
+    drivers/net/wireless/arlan-proc.c:1216: warning: 'arlan_root_table' defined but not used
     
-    Signed-off-by: Harvey Harrison <harvey.harrison at gmail.com>
-    Signed-off-by: Michael Buesch <mb at bu3sch.de>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit c1e889be18aff97e20853231531b79d79a984369
-Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-Date:   Wed Mar 12 16:41:11 2008 +0900
+commit fc0f0df940608fd40424f46f2002253dec39146d
+Author: Rick Farrington <rickdic at hotmail.com>
+Date:   Tue Mar 18 14:57:49 2008 -0700
+
+    iwlwifi: mac start synchronization issue
+    
+    This patch fixes a synchronization problem on the 4965 and 3945 with the
+    mac start callback routine.  The problem is that this function exits BEFORE the
+    'xxx_alive_start' has completed.  This can lead to a problem if a
+    subsequent MAC callback attempts to issue a firmware command.
+    
+    Signed-off-by: Rick Farrington <rickdic at hotmail.com>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit a0c2e030b91b75e469a1d983de4fbb6497efccc3
+Author: Al Viro <viro at ftp.linux.org.uk>
+Date:   Sun Mar 16 22:43:06 2008 +0000
 
-    PS3: gelic: change the prefix of the net interface for wireless
+    wavelan_cs arm fix
     
-    The gelic driver uses two net interfaces, one for ethernet and the
-    other for wireless. They share same MAC address and use 'eth' prefix
-    for the name.
-    As udev uses the MAC address to check uniqueness, this is
-    somewhat problematic.  So change the prefix of the network interface
-    name for the wireless so that udev can have an easy way to distinguish
-    interfaces.
+    Even when all fields are unsigned char, struct still might have
+    alignment > 1.  Does so on arm, unless you explicitly say that
+    it's packed...
     
-    Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+    Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit aad4c7d3a641315519add159a80f73cce554e7cd
+commit a4eac923319deb80bc9f4d70cc2ed5e014df597d
 Author: Masakazu Mokuno <mokuno at sm.sony.co.jp>
-Date:   Tue Mar 11 13:15:44 2008 +0900
+Date:   Sat Mar 15 21:38:29 2008 +0100
 
-    PS3: gelic: ignore scan info from zero SSID beacons
-    
-    Some implementations of the hidden SSID APs emit beacons which have the zero
-    length SSID information element instead of SSID padded by null (\0) characters.
-    If the firmware of the PS3 wireless hardware meets these beacons, it abandons parsing
-    IEs. Thus guest OSes get the invalid scan information for the AP.
+    rt2x00: Add id for Corega CG-WLUSB2GPX
     
-    To work around this, ignore these scan informations from the list.
+    This adds the id for Corega CG-WLUSB2GPX.
     
     Signed-off-by: Masakazu Mokuno <mokuno at sm.sony.co.jp>
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-commit 43557e15c22701f0b94e5f14a874fe02e814574e
-Author: Jan Slupski <jslupski at juljas.net>
-Date:   Mon Mar 10 22:41:18 2008 -0700
-
-    prism54: support for 124a:4025 - another version of IOGear GWU513 802.11g
-    
-    Add support to p54usb driver for apparently another version of IOGear GWU513
-    802.11g USB network card that uses GW3887IK chipset and is recognized as
-    "124a:4025 AirVast" by lsusb.
+commit 91bf0cf8540d7aa7b65a20db05015f49d2bb92d3
+Author: Pascal Terjan <pterjan at mandriva.com>
+Date:   Thu Mar 13 19:13:24 2008 +0100
+
+    iwlwifi: fix a typo in Kconfig message
     
-    Cc: Michael Wu <flamingice at sourmilk.net>
-    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+    Signed-off-by: Pascal Terjan <pterjan at mandriva.com>
+    Signed-off-by: Reinette Chatre <reinette.chatre at intel.com>
     Signed-off-by: John W. Linville <linville at tuxdriver.com>
 
-diff -up linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c.orig linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c
---- linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c.orig	2008-03-14 13:27:22.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/ps3_gelic_wireless.c	2008-03-14 15:03:38.000000000 -0400
-@@ -1644,13 +1644,24 @@ static void gelic_wl_scan_complete_event
- 	}
- 
- 	/* put them in the newtork_list */
--	scan_info = wl->buf;
--	scan_info_size = 0;
--	i = 0;
--	while (scan_info_size < data_len) {
-+	for (i = 0, scan_info_size = 0, scan_info = wl->buf;
-+	     scan_info_size < data_len;
-+	     i++, scan_info_size += be16_to_cpu(scan_info->size),
-+	     scan_info = (void *)scan_info + be16_to_cpu(scan_info->size)) {
- 		pr_debug("%s:size=%d bssid=%s scan_info=%p\n", __func__,
- 			 be16_to_cpu(scan_info->size),
- 			 print_mac(mac, &scan_info->bssid[2]), scan_info);
-+
-+		/*
-+		 * The wireless firmware may return invalid channel 0 and/or
-+		 * invalid rate if the AP emits zero length SSID ie. As this
-+		 * scan information is useless, ignore it
-+		 */
-+		if (!be16_to_cpu(scan_info->channel) || !scan_info->rate[0]) {
-+			pr_debug("%s: invalid scan info\n", __func__);
-+			continue;
-+		}
-+
- 		found = 0;
- 		oldest = NULL;
- 		list_for_each_entry(target, &wl->network_list, list) {
-@@ -1687,10 +1698,6 @@ static void gelic_wl_scan_complete_event
- 					 GFP_KERNEL);
- 		if (!target->hwinfo) {
- 			pr_info("%s: kzalloc failed\n", __func__);
--			i++;
--			scan_info_size += be16_to_cpu(scan_info->size);
--			scan_info = (void *)scan_info +
--				be16_to_cpu(scan_info->size);
- 			continue;
- 		}
- 		/* copy hw scan info */
-@@ -1709,10 +1716,6 @@ static void gelic_wl_scan_complete_event
- 			if (scan_info->ext_rate[r])
- 				target->rate_ext_len++;
- 		list_move_tail(&target->list, &wl->network_list);
--		/* bump pointer */
--		i++;
--		scan_info_size += be16_to_cpu(scan_info->size);
--		scan_info = (void *)scan_info + be16_to_cpu(scan_info->size);
- 	}
- 	memset(&data, 0, sizeof(data));
- 	wireless_send_event(port_to_netdev(wl_port(wl)), SIOCGIWSCAN, &data,
-@@ -2389,6 +2392,8 @@ static struct net_device *gelic_wl_alloc
- 	if (!netdev)
- 		return NULL;
- 
-+	strcpy(netdev->name, "wlan%d");
-+
- 	port = netdev_priv(netdev);
- 	port->netdev = netdev;
- 	port->card = card;
-diff -up linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c.orig linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c
---- linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/b43/phy.c	2008-03-14 15:03:38.000000000 -0400
-@@ -860,7 +860,7 @@ static void b43_phy_ww(struct b43_wldev 
- 	b43_phy_write(dev, B43_PHY_OFDM(0xBB),
- 		(b43_phy_read(dev, B43_PHY_OFDM(0xBB)) & 0xF000) | 0x0053);
- 	b43_phy_write(dev, B43_PHY_OFDM61,
--		(b43_phy_read(dev, B43_PHY_OFDM61 & 0xFE1F)) | 0x0120);
-+		(b43_phy_read(dev, B43_PHY_OFDM61) & 0xFE1F) | 0x0120);
- 	b43_phy_write(dev, B43_PHY_OFDM(0x13),
- 		(b43_phy_read(dev, B43_PHY_OFDM(0x13)) & 0x0FFF) | 0x3000);
- 	b43_phy_write(dev, B43_PHY_OFDM(0x14),
-diff -up linux-2.6.24.noarch/drivers/net/wireless/p54usb.c.orig linux-2.6.24.noarch/drivers/net/wireless/p54usb.c
---- linux-2.6.24.noarch/drivers/net/wireless/p54usb.c.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/p54usb.c	2008-03-14 15:03:38.000000000 -0400
-@@ -63,6 +63,7 @@ static struct usb_device_id p54u_table[]
- 	{USB_DEVICE(0x0cde, 0x0008)},	/* Sagem XG703A */
- 	{USB_DEVICE(0x0d8e, 0x3762)},	/* DLink DWL-G120 Cohiba */
- 	{USB_DEVICE(0x09aa, 0x1000)},	/* Spinnaker Proto board */
-+	{USB_DEVICE(0x124a, 0x4025)},	/* IOGear GWU513 (GW3887IK chip) */
- 	{USB_DEVICE(0x13b1, 0x000a)},	/* Linksys WUSB54G ver 2 */
- 	{USB_DEVICE(0x13B1, 0x000C)},	/* Linksys WUSB54AG */
- 	{USB_DEVICE(0x1435, 0x0427)},	/* Inventel UR054G */
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h
---- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00.h	2008-03-14 15:03:38.000000000 -0400
-@@ -620,6 +620,9 @@ struct rt2x00_dev {
- 	 * This will only be compiled in when required.
- 	 */
- #ifdef CONFIG_RT2X00_LIB_RFKILL
-+unsigned long rfkill_state;
-+#define RFKILL_STATE_ALLOCATED		1
-+#define RFKILL_STATE_REGISTERED		2
- 	struct rfkill *rfkill;
- 	struct input_polled_dev *poll_dev;
- #endif /* CONFIG_RT2X00_LIB_RFKILL */
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c
---- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00dev.c	2008-03-14 15:03:38.000000000 -0400
-@@ -1098,7 +1098,7 @@ static void rt2x00lib_uninitialize(struc
- 		return;
- 
- 	/*
--	 * Unregister rfkill.
-+	 * Unregister extra components.
- 	 */
- 	rt2x00rfkill_unregister(rt2x00dev);
- 
-@@ -1139,11 +1139,9 @@ static int rt2x00lib_initialize(struct r
- 	__set_bit(DEVICE_INITIALIZED, &rt2x00dev->flags);
- 
- 	/*
--	 * Register the rfkill handler.
-+	 * Register the extra components.
- 	 */
--	status = rt2x00rfkill_register(rt2x00dev);
--	if (status)
--		goto exit_unitialize;
-+	rt2x00rfkill_register(rt2x00dev);
- 
- 	return 0;
- 
-@@ -1313,15 +1311,9 @@ int rt2x00lib_probe_dev(struct rt2x00_de
- 	}
- 
- 	/*
--	 * Allocatie rfkill.
--	 */
--	retval = rt2x00rfkill_allocate(rt2x00dev);
--	if (retval)
--		goto exit;
--
--	/*
--	 * Open the debugfs entry.
-+	 * Register extra components.
- 	 */
-+	rt2x00rfkill_allocate(rt2x00dev);
- 	rt2x00debug_register(rt2x00dev);
- 
- 	__set_bit(DEVICE_PRESENT, &rt2x00dev->flags);
-@@ -1350,13 +1342,9 @@ void rt2x00lib_remove_dev(struct rt2x00_
- 	rt2x00lib_uninitialize(rt2x00dev);
- 
- 	/*
--	 * Close debugfs entry.
-+	 * Free extra components
- 	 */
- 	rt2x00debug_deregister(rt2x00dev);
--
--	/*
--	 * Free rfkill
--	 */
- 	rt2x00rfkill_free(rt2x00dev);
- 
- 	/*
-@@ -1395,11 +1383,15 @@ int rt2x00lib_suspend(struct rt2x00_dev 
- 	__set_bit(DEVICE_STARTED_SUSPEND, &rt2x00dev->flags);
- 
- 	/*
--	 * Disable radio and unitialize all items
--	 * that must be recreated on resume.
-+	 * Disable radio.
- 	 */
- 	rt2x00lib_stop(rt2x00dev);
- 	rt2x00lib_uninitialize(rt2x00dev);
-+
-+	/*
-+	 * Suspend/disable extra components.
-+	 */
-+	rt2x00rfkill_suspend(rt2x00dev);
- 	rt2x00debug_deregister(rt2x00dev);
- 
- exit:
-@@ -1422,9 +1414,10 @@ int rt2x00lib_resume(struct rt2x00_dev *
- 	NOTICE(rt2x00dev, "Waking up.\n");
- 
- 	/*
--	 * Open the debugfs entry.
-+	 * Restore/enable extra components.
- 	 */
- 	rt2x00debug_register(rt2x00dev);
-+	rt2x00rfkill_resume(rt2x00dev);
- 
- 	/*
- 	 * Only continue if mac80211 had open interfaces.
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h
---- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00lib.h	2008-03-14 15:03:38.000000000 -0400
-@@ -100,28 +100,36 @@ static inline void rt2x00debug_dump_fram
-  * RFkill handlers.
-  */
- #ifdef CONFIG_RT2X00_LIB_RFKILL
--int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev);
-+void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev);
- void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev);
--int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev);
-+void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev);
- void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev);
-+void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev);
-+void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev);
- #else
--static inline int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
-+static inline void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
+diff -up linux-2.6.24.noarch/MAINTAINERS.orig linux-2.6.24.noarch/MAINTAINERS
+--- linux-2.6.24.noarch/MAINTAINERS.orig	2008-03-24 16:35:48.000000000 -0400
++++ linux-2.6.24.noarch/MAINTAINERS	2008-03-25 12:57:56.000000000 -0400
+@@ -2110,7 +2110,7 @@ M:	reinette.chatre at intel.com
+ L:	linux-wireless at vger.kernel.org
+ L:	ipw3945-devel at lists.sourceforge.net
+ W:	http://intellinuxwireless.org
+-T:	git git://intellinuxwireless.org/repos/iwlwifi
++T:	git git://git.kernel.org/pub/scm/linux/kernel/git/rchatre/iwlwifi-2.6.git
+ S:	Supported
+ 
+ IOC3 ETHERNET DRIVER
+diff -up linux-2.6.24.noarch/drivers/net/wireless/b43/main.c.orig linux-2.6.24.noarch/drivers/net/wireless/b43/main.c
+--- linux-2.6.24.noarch/drivers/net/wireless/b43/main.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/b43/main.c	2008-03-25 12:57:57.000000000 -0400
+@@ -2049,7 +2049,6 @@ void b43_mac_enable(struct b43_wldev *de
  {
--	return 0;
+ 	dev->mac_suspended--;
+ 	B43_WARN_ON(dev->mac_suspended < 0);
+-	B43_WARN_ON(irqs_disabled());
+ 	if (dev->mac_suspended == 0) {
+ 		b43_write32(dev, B43_MMIO_MACCTL,
+ 			    b43_read32(dev, B43_MMIO_MACCTL)
+@@ -2075,7 +2074,6 @@ void b43_mac_suspend(struct b43_wldev *d
+ 	u32 tmp;
+ 
+ 	might_sleep();
+-	B43_WARN_ON(irqs_disabled());
+ 	B43_WARN_ON(dev->mac_suspended < 0);
+ 
+ 	if (dev->mac_suspended == 0) {
+diff -up linux-2.6.24.noarch/drivers/net/wireless/b43/debugfs.c.orig linux-2.6.24.noarch/drivers/net/wireless/b43/debugfs.c
+--- linux-2.6.24.noarch/drivers/net/wireless/b43/debugfs.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/b43/debugfs.c	2008-03-25 12:57:57.000000000 -0400
+@@ -618,6 +618,7 @@ void b43_debugfs_remove_device(struct b4
+ 	kfree(e);
  }
  
- static inline void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev)
++/* Called with IRQs disabled. */
+ void b43_debugfs_log_txstat(struct b43_wldev *dev,
+ 			    const struct b43_txstatus *status)
  {
- }
- 
--static inline int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
-+static inline void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
+@@ -629,8 +630,7 @@ void b43_debugfs_log_txstat(struct b43_w
+ 	if (!e)
+ 		return;
+ 	log = &e->txstatlog;
+-	B43_WARN_ON(!irqs_disabled());
+-	spin_lock(&log->lock);
++	spin_lock(&log->lock); /* IRQs are already disabled. */
+ 	i = log->end + 1;
+ 	if (i == B43_NR_LOGGED_TXSTATUS)
+ 		i = 0;
+diff -up linux-2.6.24.noarch/drivers/net/wireless/b43/dma.c.orig linux-2.6.24.noarch/drivers/net/wireless/b43/dma.c
+--- linux-2.6.24.noarch/drivers/net/wireless/b43/dma.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/b43/dma.c	2008-03-25 12:57:57.000000000 -0400
+@@ -560,7 +560,7 @@ static int b43_dmacontroller_tx_reset(st
+ /* Check if a DMA mapping address is invalid. */
+ static bool b43_dma_mapping_error(struct b43_dmaring *ring,
+ 				  dma_addr_t addr,
+-				  size_t buffersize)
++				  size_t buffersize, bool dma_to_device)
  {
--	return 0;
- }
+ 	if (unlikely(dma_mapping_error(addr)))
+ 		return 1;
+@@ -568,11 +568,11 @@ static bool b43_dma_mapping_error(struct
+ 	switch (ring->type) {
+ 	case B43_DMA_30BIT:
+ 		if ((u64)addr + buffersize > (1ULL << 30))
+-			return 1;
++			goto address_error;
+ 		break;
+ 	case B43_DMA_32BIT:
+ 		if ((u64)addr + buffersize > (1ULL << 32))
+-			return 1;
++			goto address_error;
+ 		break;
+ 	case B43_DMA_64BIT:
+ 		/* Currently we can't have addresses beyond
+@@ -582,6 +582,12 @@ static bool b43_dma_mapping_error(struct
  
- static inline void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
- {
- }
+ 	/* The address is OK. */
+ 	return 0;
 +
-+static inline void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev)
-+{
-+}
++address_error:
++	/* We can't support this address. Unmap it again. */
++	unmap_descbuffer(ring, addr, buffersize, dma_to_device);
 +
-+static inline void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
-+{
-+}
- #endif /* CONFIG_RT2X00_LIB_RFKILL */
- 
- #endif /* RT2X00LIB_H */
-diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c
---- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt2x00rfkill.c	2008-03-14 15:03:38.000000000 -0400
-@@ -69,56 +69,81 @@ static void rt2x00rfkill_poll(struct inp
- 	}
++	return 1;
  }
  
--int rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
-+void rt2x00rfkill_register(struct rt2x00_dev *rt2x00dev)
- {
--	int retval;
--
--	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
--		return 0;
-+	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
-+	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
-+		return;
- 
--	retval = rfkill_register(rt2x00dev->rfkill);
--	if (retval) {
-+	if (rfkill_register(rt2x00dev->rfkill)) {
- 		ERROR(rt2x00dev, "Failed to register rfkill handler.\n");
--		return retval;
-+		return;
+ static int setup_rx_descbuffer(struct b43_dmaring *ring,
+@@ -599,7 +605,7 @@ static int setup_rx_descbuffer(struct b4
+ 	if (unlikely(!skb))
+ 		return -ENOMEM;
+ 	dmaaddr = map_descbuffer(ring, skb->data, ring->rx_buffersize, 0);
+-	if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize)) {
++	if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
+ 		/* ugh. try to realloc in zone_dma */
+ 		gfp_flags |= GFP_DMA;
+ 
+@@ -612,7 +618,7 @@ static int setup_rx_descbuffer(struct b4
+ 					 ring->rx_buffersize, 0);
  	}
  
--	retval = input_register_polled_device(rt2x00dev->poll_dev);
--	if (retval) {
-+	if (input_register_polled_device(rt2x00dev->poll_dev)) {
- 		ERROR(rt2x00dev, "Failed to register polled device.\n");
- 		rfkill_unregister(rt2x00dev->rfkill);
--		return retval;
-+		return;
+-	if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize)) {
++	if (b43_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
+ 		dev_kfree_skb_any(skb);
+ 		return -EIO;
  	}
+@@ -852,7 +858,8 @@ struct b43_dmaring *b43_setup_dmaring(st
+ 					  b43_txhdr_size(dev),
+ 					  DMA_TO_DEVICE);
+ 
+-		if (b43_dma_mapping_error(ring, dma_test, b43_txhdr_size(dev))) {
++		if (b43_dma_mapping_error(ring, dma_test,
++					  b43_txhdr_size(dev), 1)) {
+ 			/* ugh realloc */
+ 			kfree(ring->txhdr_cache);
+ 			ring->txhdr_cache = kcalloc(nr_slots,
+@@ -867,7 +874,7 @@ struct b43_dmaring *b43_setup_dmaring(st
+ 						  DMA_TO_DEVICE);
+ 
+ 			if (b43_dma_mapping_error(ring, dma_test,
+-						  b43_txhdr_size(dev)))
++						  b43_txhdr_size(dev), 1))
+ 				goto err_kfree_txhdr_cache;
+ 		}
  
-+	__set_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state);
-+
- 	/*
- 	 * Force initial poll which will detect the initial device state,
- 	 * and correctly sends the signal to the rfkill layer about this
- 	 * state.
- 	 */
- 	rt2x00rfkill_poll(rt2x00dev->poll_dev);
--
--	return 0;
+@@ -1189,7 +1196,7 @@ static int dma_tx_fragment(struct b43_dm
+ 
+ 	meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
+ 					   hdrsize, 1);
+-	if (b43_dma_mapping_error(ring, meta_hdr->dmaaddr, hdrsize)) {
++	if (b43_dma_mapping_error(ring, meta_hdr->dmaaddr, hdrsize, 1)) {
+ 		ring->current_slot = old_top_slot;
+ 		ring->used_slots = old_used_slots;
+ 		return -EIO;
+@@ -1208,7 +1215,7 @@ static int dma_tx_fragment(struct b43_dm
+ 
+ 	meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
+ 	/* create a bounce buffer in zone_dma on mapping failure. */
+-	if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len)) {
++	if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {
+ 		bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA);
+ 		if (!bounce_skb) {
+ 			ring->current_slot = old_top_slot;
+@@ -1222,7 +1229,7 @@ static int dma_tx_fragment(struct b43_dm
+ 		skb = bounce_skb;
+ 		meta->skb = skb;
+ 		meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
+-		if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len)) {
++		if (b43_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {
+ 			ring->current_slot = old_top_slot;
+ 			ring->used_slots = old_used_slots;
+ 			err = -EIO;
+@@ -1337,6 +1344,7 @@ out_unlock:
+ 	return err;
  }
  
- void rt2x00rfkill_unregister(struct rt2x00_dev *rt2x00dev)
++/* Called with IRQs disabled. */
+ void b43_dma_handle_txstatus(struct b43_wldev *dev,
+ 			     const struct b43_txstatus *status)
  {
--	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
-+	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
-+	    !test_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state))
+@@ -1349,8 +1357,8 @@ void b43_dma_handle_txstatus(struct b43_
+ 	ring = parse_cookie(dev, status->cookie, &slot);
+ 	if (unlikely(!ring))
  		return;
- 
- 	input_unregister_polled_device(rt2x00dev->poll_dev);
- 	rfkill_unregister(rt2x00dev->rfkill);
+-	B43_WARN_ON(!irqs_disabled());
+-	spin_lock(&ring->lock);
 +
-+	__clear_bit(RFKILL_STATE_REGISTERED, &rt2x00dev->rfkill_state);
- }
++	spin_lock(&ring->lock); /* IRQs are already disabled. */
  
--int rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
-+static struct input_polled_dev *
-+rt2x00rfkill_allocate_polldev(struct rt2x00_dev *rt2x00dev)
- {
--	struct device *device = wiphy_dev(rt2x00dev->hw->wiphy);
-+	struct input_polled_dev *poll_dev;
+ 	B43_WARN_ON(!ring->tx);
+ 	ops = ring->ops;
+diff -up linux-2.6.24.noarch/drivers/net/wireless/wavelan_cs.h.orig linux-2.6.24.noarch/drivers/net/wireless/wavelan_cs.h
+--- linux-2.6.24.noarch/drivers/net/wireless/wavelan_cs.h.orig	2008-01-24 17:58:37.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/wavelan_cs.h	2008-03-25 12:57:57.000000000 -0400
+@@ -309,7 +309,7 @@ struct mmw_t
+ #define	MMW_EXT_ANT_INTERNAL	0x00	/* Internal antenna */
+ #define	MMW_EXT_ANT_EXTERNAL	0x03	/* External antenna */
+ #define	MMW_EXT_ANT_IQ_TEST	0x1C	/* IQ test pattern (set to 0) */
+-};
++} __attribute__((packed));
+ 
+ /* Size for structure checking (if padding is correct) */
+ #define	MMW_SIZE	37
+diff -up linux-2.6.24.noarch/drivers/net/wireless/arlan-proc.c.orig linux-2.6.24.noarch/drivers/net/wireless/arlan-proc.c
+--- linux-2.6.24.noarch/drivers/net/wireless/arlan-proc.c.orig	2008-01-24 17:58:37.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/arlan-proc.c	2008-03-25 12:57:56.000000000 -0400
+@@ -1202,13 +1202,6 @@ static ctl_table arlan_table[MAX_ARLANS 
+ 	{ .ctl_name = 0 }
+ };
+ #endif
+-#else
+-
+-static ctl_table arlan_table[MAX_ARLANS + 1] =
+-{
+-	{ .ctl_name = 0 }
+-};
+-#endif
  
-+	poll_dev = input_allocate_polled_device();
-+	if (!poll_dev)
-+		return NULL;
-+
-+	poll_dev->private = rt2x00dev;
-+	poll_dev->poll = rt2x00rfkill_poll;
-+	poll_dev->poll_interval = RFKILL_POLL_INTERVAL;
-+
-+	poll_dev->input->name = rt2x00dev->ops->name;
-+	poll_dev->input->phys = wiphy_name(rt2x00dev->hw->wiphy);
-+	poll_dev->input->id.bustype = BUS_HOST;
-+	poll_dev->input->id.vendor = 0x1814;
-+	poll_dev->input->id.product = rt2x00dev->chip.rt;
-+	poll_dev->input->id.version = rt2x00dev->chip.rev;
-+	poll_dev->input->dev.parent = wiphy_dev(rt2x00dev->hw->wiphy);
-+	poll_dev->input->evbit[0] = BIT(EV_KEY);
-+	set_bit(KEY_WLAN, poll_dev->input->keybit);
-+
-+	return poll_dev;
-+}
-+
-+void rt2x00rfkill_allocate(struct rt2x00_dev *rt2x00dev)
-+{
- 	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
--		return 0;
-+		return;
- 
--	rt2x00dev->rfkill = rfkill_allocate(device, RFKILL_TYPE_WLAN);
-+	rt2x00dev->rfkill =
-+	    rfkill_allocate(wiphy_dev(rt2x00dev->hw->wiphy), RFKILL_TYPE_WLAN);
- 	if (!rt2x00dev->rfkill) {
- 		ERROR(rt2x00dev, "Failed to allocate rfkill handler.\n");
--		goto exit;
-+		return;
- 	}
  
- 	rt2x00dev->rfkill->name = rt2x00dev->ops->name;
-@@ -126,40 +151,49 @@ int rt2x00rfkill_allocate(struct rt2x00_
- 	rt2x00dev->rfkill->state = -1;
- 	rt2x00dev->rfkill->toggle_radio = rt2x00rfkill_toggle_radio;
- 
--	rt2x00dev->poll_dev = input_allocate_polled_device();
-+	rt2x00dev->poll_dev = rt2x00rfkill_allocate_polldev(rt2x00dev);
- 	if (!rt2x00dev->poll_dev) {
- 		ERROR(rt2x00dev, "Failed to allocate polled device.\n");
--		goto exit_free_rfkill;
-+		rfkill_free(rt2x00dev->rfkill);
-+		rt2x00dev->rfkill = NULL;
-+		return;
- 	}
+ // static int mmtu = 1234;
+@@ -1233,7 +1226,6 @@ static ctl_table arlan_root_table[] =
+ //};
  
--	rt2x00dev->poll_dev->private = rt2x00dev;
--	rt2x00dev->poll_dev->poll = rt2x00rfkill_poll;
--	rt2x00dev->poll_dev->poll_interval = RFKILL_POLL_INTERVAL;
--
--	rt2x00dev->poll_dev->input->name = rt2x00dev->ops->name;
--	rt2x00dev->poll_dev->input->phys = wiphy_name(rt2x00dev->hw->wiphy);
--	rt2x00dev->poll_dev->input->id.bustype = BUS_HOST;
--	rt2x00dev->poll_dev->input->id.vendor = 0x1814;
--	rt2x00dev->poll_dev->input->id.product = rt2x00dev->chip.rt;
--	rt2x00dev->poll_dev->input->id.version = rt2x00dev->chip.rev;
--	rt2x00dev->poll_dev->input->dev.parent = device;
--	rt2x00dev->poll_dev->input->evbit[0] = BIT(EV_KEY);
--	set_bit(KEY_WLAN, rt2x00dev->poll_dev->input->keybit);
-+	return;
-+}
- 
--	return 0;
-+void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
-+{
-+	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
-+	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
-+		return;
- 
--exit_free_rfkill:
--	rfkill_free(rt2x00dev->rfkill);
-+	input_free_polled_device(rt2x00dev->poll_dev);
-+	rt2x00dev->poll_dev = NULL;
- 
--exit:
--	return -ENOMEM;
-+	rfkill_free(rt2x00dev->rfkill);
-+	rt2x00dev->rfkill = NULL;
- }
  
--void rt2x00rfkill_free(struct rt2x00_dev *rt2x00dev)
-+void rt2x00rfkill_suspend(struct rt2x00_dev *rt2x00dev)
- {
--	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags))
-+	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
-+	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
- 		return;
+-#ifdef CONFIG_PROC_FS
+ static struct ctl_table_header *arlan_device_sysctl_header;
  
- 	input_free_polled_device(rt2x00dev->poll_dev);
--	rfkill_free(rt2x00dev->rfkill);
-+	rt2x00dev->poll_dev = NULL;
-+}
-+
-+void rt2x00rfkill_resume(struct rt2x00_dev *rt2x00dev)
-+{
-+	if (!test_bit(CONFIG_SUPPORT_HW_BUTTON, &rt2x00dev->flags) ||
-+	    !test_bit(RFKILL_STATE_ALLOCATED, &rt2x00dev->rfkill_state))
-+		return;
-+
-+	rt2x00dev->poll_dev = rt2x00rfkill_allocate_polldev(rt2x00dev);
-+	if (!rt2x00dev->poll_dev) {
-+		ERROR(rt2x00dev, "Failed to allocate polled device.\n");
-+		return;
-+	}
+ int __init init_arlan_proc(void)
+diff -up linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c
+--- linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl4965-base.c	2008-03-25 12:57:57.000000000 -0400
+@@ -6628,11 +6628,11 @@ static void iwl4965_alive_start(struct i
+ 
+ 	/* At this point, the NIC is initialized and operational */
+ 	priv->notif_missed_beacons = 0;
+-	set_bit(STATUS_READY, &priv->status);
+ 
+ 	iwl4965_rf_kill_ct_config(priv);
+ 
+ 	IWL_DEBUG_INFO("ALIVE processing complete.\n");
++	set_bit(STATUS_READY, &priv->status);
+ 	wake_up_interruptible(&priv->wait_command_queue);
+ 
+ 	if (priv->error_recovering)
+@@ -9282,7 +9282,7 @@ static int iwl4965_pci_probe(struct pci_
+ 	return err;
  }
-diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c
---- linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c.orig	2008-03-14 13:27:23.000000000 -0400
-+++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/hw.c	2008-03-14 15:03:38.000000000 -0400
-@@ -427,6 +427,8 @@ void ath5k_hw_detach(struct ath5k_hw *ah
- {
- 	ATH5K_TRACE(ah->ah_sc);
  
-+	__set_bit(ATH_STAT_INVALID, ah->ah_sc->status);
-+
- 	if (ah->ah_rf_banks != NULL)
- 		kfree(ah->ah_rf_banks);
+-static void iwl4965_pci_remove(struct pci_dev *pdev)
++static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
+ {
+ 	struct iwl4965_priv *priv = pci_get_drvdata(pdev);
+ 	struct list_head *p, *q;
+diff -up linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/Kconfig.orig linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/Kconfig
+--- linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/Kconfig.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/Kconfig	2008-03-25 12:57:57.000000000 -0400
+@@ -20,7 +20,7 @@ config IWL4965
+ 	  runs.
+ 
+ 	  If you want to compile the driver as a module ( = code which can be
+-	  inserted in and remvoed from the running kernel whenever you want),
++	  inserted in and removed from the running kernel whenever you want),
+ 	  say M here and read <file:Documentation/kbuild/modules.txt>.  The
+ 	  module will be called iwl4965.ko.
+ 
+@@ -101,7 +101,7 @@ config IWL3945
+ 	  runs.
+ 
+ 	  If you want to compile the driver as a module ( = code which can be
+-	  inserted in and remvoed from the running kernel whenever you want),
++	  inserted in and removed from the running kernel whenever you want),
+ 	  say M here and read <file:Documentation/kbuild/modules.txt>.  The
+ 	  module will be called iwl3945.ko.
+ 
+diff -up linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c
+--- linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/iwlwifi/iwl3945-base.c	2008-03-25 12:57:57.000000000 -0400
+@@ -6206,11 +6206,11 @@ static void iwl3945_alive_start(struct i
+ 
+ 	/* At this point, the NIC is initialized and operational */
+ 	priv->notif_missed_beacons = 0;
+-	set_bit(STATUS_READY, &priv->status);
+ 
+ 	iwl3945_reg_txpower_periodic(priv);
+ 
+ 	IWL_DEBUG_INFO("ALIVE processing complete.\n");
++	set_bit(STATUS_READY, &priv->status);
+ 	wake_up_interruptible(&priv->wait_command_queue);
+ 
+ 	if (priv->error_recovering)
+@@ -8706,7 +8706,7 @@ static int iwl3945_pci_probe(struct pci_
+ 	return err;
+ }
  
+-static void iwl3945_pci_remove(struct pci_dev *pdev)
++static void __devexit iwl3945_pci_remove(struct pci_dev *pdev)
+ {
+ 	struct iwl3945_priv *priv = pci_get_drvdata(pdev);
+ 	struct list_head *p, *q;
+diff -up linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c
+--- linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c.orig	2008-03-24 16:35:43.000000000 -0400
++++ linux-2.6.24.noarch/drivers/net/wireless/rt2x00/rt73usb.c	2008-03-25 12:57:57.000000000 -0400
+@@ -2095,6 +2095,8 @@ static struct usb_device_id rt73usb_devi
+ 	{ USB_DEVICE(0x1371, 0x9032), USB_DEVICE_DATA(&rt73usb_ops) },
+ 	/* Conceptronic */
+ 	{ USB_DEVICE(0x14b2, 0x3c22), USB_DEVICE_DATA(&rt73usb_ops) },
++	/* Corega */
++	{ USB_DEVICE(0x07aa, 0x002e), USB_DEVICE_DATA(&rt73usb_ops) },
+ 	/* D-Link */
+ 	{ USB_DEVICE(0x07d1, 0x3c03), USB_DEVICE_DATA(&rt73usb_ops) },
+ 	{ USB_DEVICE(0x07d1, 0x3c04), USB_DEVICE_DATA(&rt73usb_ops) },




More information about the fedora-extras-commits mailing list