rt2x00: fix cancelling uninitialized work
authorStanislaw Gruszka <sgruszka@redhat.com>
Mon, 4 Apr 2011 11:50:32 +0000 (13:50 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 4 Apr 2011 19:22:13 +0000 (15:22 -0400)
{rx,tx}done_work's are only initialized for usb devices.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: stable@kernel.org
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00dev.c

index 9de9dbe943998e1790a8d514157eea8028410238..84eb6ad3637752c686a9cd8d1be0e058cacda162 100644 (file)
@@ -1062,8 +1062,10 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
         * Stop all work.
         */
        cancel_work_sync(&rt2x00dev->intf_work);
-       cancel_work_sync(&rt2x00dev->rxdone_work);
-       cancel_work_sync(&rt2x00dev->txdone_work);
+       if (rt2x00_is_usb(rt2x00dev)) {
+               cancel_work_sync(&rt2x00dev->rxdone_work);
+               cancel_work_sync(&rt2x00dev->txdone_work);
+       }
        destroy_workqueue(rt2x00dev->workqueue);
 
        /*