]> bbs.cooldavid.org Git - net-next-2.6.git/commit
rtl8187: Fix kernel oops when device is removed when LEDS enabled
authorLarry Finger <Larry.Finger@lwfinger.net>
Wed, 4 Nov 2009 06:00:25 +0000 (00:00 -0600)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 5 Nov 2009 00:20:50 +0000 (19:20 -0500)
commit37b12dd2b07b4d7dc222a5f7f88b25cec532b2aa
treef666768d4dbc47804448a2b6ee66fa49ae10f77f
parentbcfe3c2046fc4f16544f2b127f1b159dd1fcad8b
rtl8187: Fix kernel oops when device is removed when LEDS enabled

As reported by Rick Farina (sidhayn@gmail.com), removing the RTL8187
USB stick, or unloading the driver rtl8187 using rmmod will cause a
kernel oops.  There are at least two forms of the failure, (1) BUG:
Scheduling while atomic, and (2) a fatal kernel page fault. This
problem is reported in Bugzilla #14539.

This problem does not occur for kernel 2.6.31, but does for 2.6.32-rc2,
thus it is technically a regression; however, bisection did not locate
any faulty patch. The fix was found by comparing the faulty code in
rtl8187 with p54usb.  My interpretation is that the handling of work
queues in mac80211 changed enough to the LEDs to be unregistered
before tasks on the work queues are cancelled. Previously, these
actions could be done in either order.

(Herton Ronaldo Krzesinski <herton@mandriva.com.br> reports that the
code is the same in 2.6.31, so this may be a candidate for 2.6.31.x.
-- JWL)

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Reported-by: Rick Farina <sidhayn@gmail.com>
Tested-by: Rick Farina <sidhayn@gmail.com>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rtl818x/rtl8187_leds.c