With high tx flow the same buffer can transmit  more than
once and get stuck in loop.

Reset TCR to zero in device_tx_srv.

Signed-off-by: Malcolm Priestley <[email protected]>
Cc: <[email protected]> # v3.19+
---
 drivers/staging/vt6655/device_main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/staging/vt6655/device_main.c 
b/drivers/staging/vt6655/device_main.c
index c5f8233..9b5d840 100644
--- a/drivers/staging/vt6655/device_main.c
+++ b/drivers/staging/vt6655/device_main.c
@@ -963,6 +963,9 @@ static int device_tx_srv(struct vnt_private *pDevice, 
unsigned int uIdx)
                        vnt_int_report_rate(pDevice, pTD->pTDInfo, byTsr0, 
byTsr1);
 
                        device_free_tx_buf(pDevice, pTD);
+
+                       /* Done with TCR reset to avoid retransmission */
+                       pTD->m_td1TD1.byTCR = 0;
                        pDevice->iTDUsed[uIdx]--;
                }
        }
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to