]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
staging: vt6656: Fix false Tx excessive retries reporting.
authorMalcolm Priestley <tvboxspy@gmail.com>
Wed, 8 Jan 2020 21:41:36 +0000 (21:41 +0000)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 6 Mar 2020 07:13:20 +0000 (02:13 -0500)
BugLink: https://bugs.launchpad.net/bugs/1864904
commit 9dd631fa99dc0a0dfbd191173bf355ba30ea786a upstream.

The driver reporting  IEEE80211_TX_STAT_ACK is not being handled
correctly. The driver should only report on TSR_TMO flag is not
set indicating no transmission errors and when not IEEE80211_TX_CTL_NO_ACK
is being requested.

Cc: stable <stable@vger.kernel.org>
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Link: https://lore.kernel.org/r/340f1f7f-c310-dca5-476f-abc059b9cd97@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/staging/vt6656/int.c

index c6ffbe0e2728c29250bee442afab8cddacf1bc8f..c521729c4192cb500198a3252001d363211f026b 100644 (file)
@@ -107,9 +107,11 @@ static int vnt_int_report_rate(struct vnt_private *priv, u8 pkt_no, u8 tsr)
 
        info->status.rates[0].count = tx_retry;
 
-       if (!(tsr & (TSR_TMO | TSR_RETRYTMO))) {
+       if (!(tsr & TSR_TMO)) {
                info->status.rates[0].idx = idx;
-               info->flags |= IEEE80211_TX_STAT_ACK;
+
+               if (!(info->flags & IEEE80211_TX_CTL_NO_ACK))
+                       info->flags |= IEEE80211_TX_STAT_ACK;
        }
 
        ieee80211_tx_status_irqsafe(priv->hw, context->skb);