[PATCH] bcm43xx: Fix cancellation of work queue crashes
authorLarry Finger <Larry.Finger@lwfinger.net>
Tue, 4 Sep 2007 19:14:20 +0000 (14:14 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 14 Sep 2007 18:32:23 +0000 (14:32 -0400)
commit3f7086978fc0193eff24a77d8b57ac4debc088fa
tree28fb8efbc4b3532fe79e4d0d19969f8fb0a5939f
parent0d4cbb5e7f60b2f1a4d8b7f6ea4cc264262c7a01
[PATCH] bcm43xx: Fix cancellation of work queue crashes

A crash upon booting that is caused by bcm43xx has been reported [1] and
found to be due to a work queue being reinitialized while work on that
queue is still pending. This fix modifies the shutdown of work queues and
prevents periodic work from being requeued during shutdown. With this patch,
no more crashes on reboot were observed by the original reporter. I do not
get that particular failure on my system; however, when running a large
number of ifdown/ifup sequences, my system would kernel panic with the
'caps lock' light blinking at roughly a 1 Hz rate. In addition, there were
infrequent failures in the firmware that resulted in 'IRQ READY TIMEOUT'
errors. With this patch, no more of the first type of failure occur, and
incidence of the second type is greatly reduced.

[1] http://bugzilla.kernel.org/show_bug.cgi?id=8937

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Acked-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/bcm43xx/bcm43xx_main.c
drivers/net/wireless/bcm43xx/bcm43xx_main.h
drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c