• Larry Finger's avatar
    rtl8187: Fix kernel oops when device is removed when LEDS enabled · 37b12dd2
    Larry Finger authored
    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: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Reported-by: default avatarRick Farina <sidhayn@gmail.com>
    Tested-by: default avatarRick Farina <sidhayn@gmail.com>
    Cc: stable@kernel.org
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    37b12dd2
rtl8187_leds.c 5.86 KB