1) eliminate hw->usb_removed; use the existing wlandev->hwremoved field
instead.
2) flush_scheduled_work() in drvr_stop only when we're about to do a
device removal (as oppoed to user-initiated ifstate_disable)
3) only call netif_carrier_off if we're not about to shut down.
Here's a quick patch for the USB adapter. We really do
want to pass GFP_KERNEL to kmalloc if we can, because
this will allow kmalloc to sleep if a suitable block
of memory isn't immediately available. With
GFP_ATOMIC, kmalloc has no choice but to fail.
I've also removed the spinlock from hfa384x_usb_defer,
to bring it into line with the urb_rx_submit() and
urb_tx_submit().
Get rid of irqsave/irqrestore in the ctlx timer functions.
Use del_timer_sync instead of the mess of lock retries; if a timer fires
off, it'll get the lock, period. otherwise the irqsave will disable the
timer from firing off until we give up the lock.
1) The default target is now "all". It would fail with a help message
if config.out is missing. Both changes make the build system consistent
with Linux 2.6 behavior.
2) "make config" is on top of the help now. We want to encourage users
to use interactive config and select the drivers they need. It's now
described as "interactive configure" in order to distinguish it from
other *config targets.
3) New target "make help_noconfig" that only tells user about "make
*config" and "make help".
4) config.mk won't be built automatically if config.out is missing.
"make auto_config" would still work.
I realize that some users use custom scripts to build the driver, but
they should be OK. "make all" and "make auto_config" still do what they
used to do. The patch primarily affects interactive behavior.
This patch contains the following extra features:
- update the error statistics
- more appropriate actions for USB errors, such as
temporarily throttling RX and TX back
- setting the endpoint numbers *before* we register
the WLAN device.
It's not working for me. Even if I only request the PCI driver, no
modules are built at all. Not that I need 2.2.x support it, I just
tried to understand how broken it is.
If Linux 2.2.x is to be dropped, then the Configure script should be
changed, and some PCI compatibility code needs to be removed from
src/prism2/driver/prism2sta.c.
Patch for removal Linux 2.2.x support is attached. Fixing 2.2.x support
would be harder.
The patch does following:
1) The default target is now "all". It would fail with a help message if
config.out is missing. Both changes make the build system consistent with
Linux 2.6 behavior.
2) "make config" is on top of the help now. We want to encourage users to
use interactive config and select the drivers they need. It's now
described as "interactive configure" in order to distinguish it from other
*config targets.
3) New target "make help_noconfig" that only tells user about "make
*config" and "make help".
4) config.mk won't be built automatically if config.out is missing.
"make auto_config" would still work.
I realize that some users use custom scripts to build the driver, but
they should be OK. "make all" and "make auto_config" still do what they
used to do. The patch primarily affects interactive behavior.
Here's yet another patch for the USB adapter. At David
Brownell's suggestion, we don't put synchronous CTLXs
on the device's wait-queue, but put a mutex on each CTLX
instead.
I've also tidied up a few function prototypes and
created a new usbctlx_alloc() function.
- Moving the completion task to a work-queue.
- Make the reaper task an explicit tasklet.
- Make the synchronous and asynchronous 'Read RID'
completion functions share more code.