rt2x00: Remove failsave from rt2x00usb_watchdog_tx_dma
authorIvo van Doorn <IvDoorn@gmail.com>
Thu, 4 Nov 2010 19:39:48 +0000 (20:39 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 15 Nov 2010 18:26:03 +0000 (13:26 -0500)
When the TX status handler failed to clear the queue
in rt2x00usb_watchdog_tx_dma() we shouldn't use a failsave
to use the rt2x00usb txdone handler.

If a driver has overriden the txdone handler it must make
sure the txdone handler is capable of cleaning up the queue itself.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00usb.c

index 88995d50a5c71a1fde201e35ab59e64a3db50bab..6dd96192dd91ea19d3d91085ce99104f8e110e3f 100644 (file)
@@ -322,21 +322,6 @@ static void rt2x00usb_watchdog_tx_dma(struct data_queue *queue)
         */
        rt2x00dev->txdone_work.func(&rt2x00dev->txdone_work);
 
-       /*
-        * Security measure: if the driver did override the
-        * txdone_work function, and the hardware did arrive
-        * in a state which causes it to malfunction, it is
-        * possible that the driver couldn't handle the txdone
-        * event correctly. So after giving the driver the
-        * chance to cleanup, we now force a cleanup of any
-        * leftovers.
-        */
-       if (!rt2x00queue_empty(queue)) {
-               WARNING(queue->rt2x00dev, "TX queue %d DMA timed out,"
-                       " status handling failed, invoke hard reset", queue->qid);
-               rt2x00usb_work_txdone(&rt2x00dev->txdone_work);
-       }
-
        /*
         * The queue has been reset, and mac80211 is allowed to use the
         * queue again.