| From e030bc4a7548990234a950416cb8c1df85be438a Mon Sep 17 00:00:00 2001 |
| From: Malcolm Priestley <tvboxspy@gmail.com> |
| Date: Wed, 8 Jan 2020 21:41:36 +0000 |
| Subject: [PATCH] staging: vt6656: Fix false Tx excessive retries reporting. |
| |
| 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/staging/vt6656/int.c b/drivers/staging/vt6656/int.c |
| index 504424b19fcf..af0060c74530 100644 |
| --- a/drivers/staging/vt6656/int.c |
| +++ b/drivers/staging/vt6656/int.c |
| @@ -97,9 +97,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); |
| -- |
| 2.7.4 |
| |