From 783f5770cc0b3ec3f02cf11e50809f75a035e8b4 Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Wed, 14 Mar 2012 11:16:20 +0100 Subject: [PATCH] --- yaml --- r: 291533 b: refs/heads/master c: 5f8f718ae1e1a6b4e16e67e9e67aff1864419f2e h: refs/heads/master i: 291531: e53d60ebe5bbe58dedeaf27b101699c5a8e05e3a v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/rt2x00/rt2800usb.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 70b4579ecf87..6f21e3829d3a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f421111b5e69020c047eb3ff057e50f446c3c7a2 +refs/heads/master: 5f8f718ae1e1a6b4e16e67e9e67aff1864419f2e diff --git a/trunk/drivers/net/wireless/rt2x00/rt2800usb.c b/trunk/drivers/net/wireless/rt2x00/rt2800usb.c index eacf94b2f382..8c1d2c0df854 100644 --- a/trunk/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/trunk/drivers/net/wireless/rt2x00/rt2800usb.c @@ -502,7 +502,7 @@ rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg) __le32 *txwi; u32 word; int wcid, ack, pid; - int tx_wcid, tx_ack, tx_pid; + int tx_wcid, tx_ack, tx_pid, is_agg; /* * This frames has returned with an IO error, @@ -515,6 +515,7 @@ rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg) 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 @@ -527,7 +528,7 @@ rt2800usb_txdone_entry_check(struct queue_entry *entry, u32 reg) 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) || (pid != tx_pid)) { + if (wcid != tx_wcid || ack != tx_ack || (!is_agg && pid != tx_pid)) { WARNING(entry->queue->rt2x00dev, "TX status report missed for queue %d entry %d\n", entry->queue->qid, entry->entry_idx);