diff --git a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c index fe365cda0841..17e87e9b3d19 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -961,8 +961,7 @@ static bool rt2800_txdone_entry_check(struct queue_entry *entry, u32 reg) { __le32 *txwi; u32 word; - int wcid, ack, pid; - int tx_wcid, tx_ack, tx_pid, is_agg; + int wcid, tx_wcid; /* * This frames has returned with an IO error, @@ -972,23 +971,17 @@ static bool rt2800_txdone_entry_check(struct queue_entry *entry, u32 reg) if (test_bit(ENTRY_DATA_IO_FAILED, &entry->flags)) return false; - wcid = rt2x00_get_field32(reg, TX_STA_FIFO_WCID); - ack = rt2x00_get_field32(reg, TX_STA_FIFO_TX_ACK_REQUIRED); - pid = rt2x00_get_field32(reg, TX_STA_FIFO_PID_TYPE); - is_agg = rt2x00_get_field32(reg, TX_STA_FIFO_TX_AGGRE); - /* * Validate if this TX status report is intended for - * this entry by comparing the WCID/ACK/PID fields. + * this entry by comparing the WCID field. */ txwi = rt2800_drv_get_txwi(entry); - word = rt2x00_desc_read(txwi, 1); tx_wcid = rt2x00_get_field32(word, TXWI_W1_WIRELESS_CLI_ID); - tx_ack = rt2x00_get_field32(word, TXWI_W1_ACK); - tx_pid = rt2x00_get_field32(word, TXWI_W1_PACKETID); - if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) { + wcid = rt2x00_get_field32(reg, TX_STA_FIFO_WCID); + + if (wcid != tx_wcid) { rt2x00_dbg(entry->queue->rt2x00dev, "TX status report missed for queue %d entry %d\n", entry->queue->qid, entry->entry_idx);