2015-04-11 23:47:57

by Malcolm Priestley

[permalink] [raw]
Subject: [PATCH] staging: vt6655: Fix TX retransmission race condition

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



2015-04-18 07:18:08

by Malcolm Priestley

[permalink] [raw]
Subject: Re: [PATCH] staging: vt6655: Fix TX retransmission race condition



On 12/04/15 00:47, Malcolm Priestley wrote:
> 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]--;
> }
> }

Hi Greg

Please could you drop this patch, it causes a regression in driver.

Thanks

Malcolm