rt2x00: Fix tx status handling in rt2800pci
authorHelmut Schaa <helmut.schaa@googlemail.com>
Sat, 9 Oct 2010 11:35:48 +0000 (13:35 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 11 Oct 2010 19:04:22 +0000 (15:04 -0400)
The patches "rt2x00: Improve TX status entry validation" and "rt2x00: rework tx
status handling in rt2800pci" together were causing problems with tx status
processing in rt2800pci:

phy1 -> rt2800pci_txdone: Warning - Got TX status for an empty queue 3, dropping
phy1 -> rt2800pci_txdone: Warning - Got TX status for an unavailable queue 7, dropping

Fix this by using the correct field definition for getting the QID out of the
tx status report.

Reported-by: Luis Correia <luis.f.correia@gmail.com>
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Tested-by: Luis Correia <luis.f.correia@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800pci.c

index cc4e17c437d1857bdff71d427c55f9c7649eb7ea..b267395359863ca10a55fe8a39f186e5bf08deb9 100644 (file)
@@ -676,7 +676,7 @@ static void rt2800pci_txdone(struct rt2x00_dev *rt2x00dev)
                        break;
                }
 
-               qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_TYPE) - 1;
+               qid = rt2x00_get_field32(status, TX_STA_FIFO_PID_QUEUE);
                if (qid >= QID_RX) {
                        /*
                         * Unknown queue, this shouldn't happen. Just drop