Jelajahi Sumber

rt2x00: Remove failsave from rt2x00usb_watchdog_tx_dma

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>
Ivo van Doorn 14 tahun lalu
induk
melakukan
aaf886bd21
1 mengubah file dengan 0 tambahan dan 15 penghapusan
  1. 0 15
      drivers/net/wireless/rt2x00/rt2x00usb.c

+ 0 - 15
drivers/net/wireless/rt2x00/rt2x00usb.c

@@ -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.