Re: [PATCH] gianfar: fix the last transmit buffer descriptor
From: Yangbo Lu Date: Thu, 2 Jun 2016 17:36:28 +0800 > When the transmit hardware timestamping is enabled, an additional > TxBD would be added and would be set as the last TxBD with TXBD_LAST > and TXBD_INTERRUPT. However this has been broken by a patch recently. > This made the software couldn't get transmit hardware timestamps and > resulted in call trace. So, this patch is to fix this issue. > > Fixes: 48963b4492e9 ("gianfar: Remove redundant ops for do_tstamp >from xmit()") > Signed-off-by: Yangbo Lu Applied, thanks.
RE: [PATCH] gianfar: fix the last transmit buffer descriptor
>-Original Message- >From: Yangbo Lu [mailto:yangbo...@nxp.com] >Sent: Thursday, June 02, 2016 12:36 PM >To: netdev@vger.kernel.org >Cc: Claudiu Manoil ; Yangbo Lu > >Subject: [PATCH] gianfar: fix the last transmit buffer descriptor > >When the transmit hardware timestamping is enabled, an additional >TxBD would be added and would be set as the last TxBD with TXBD_LAST >and TXBD_INTERRUPT. However this has been broken by a patch recently. >This made the software couldn't get transmit hardware timestamps and >resulted in call trace. So, this patch is to fix this issue. > >Fixes: 48963b4492e9 ("gianfar: Remove redundant ops for do_tstamp > from xmit()") Thanks. Reviewed-by: Claudiu Manoil
[PATCH] gianfar: fix the last transmit buffer descriptor
When the transmit hardware timestamping is enabled, an additional TxBD would be added and would be set as the last TxBD with TXBD_LAST and TXBD_INTERRUPT. However this has been broken by a patch recently. This made the software couldn't get transmit hardware timestamps and resulted in call trace. So, this patch is to fix this issue. Fixes: 48963b4492e9 ("gianfar: Remove redundant ops for do_tstamp from xmit()") Signed-off-by: Yangbo Lu --- drivers/net/ethernet/freescale/gianfar.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c index 7615e06..2e6785b 100644 --- a/drivers/net/ethernet/freescale/gianfar.c +++ b/drivers/net/ethernet/freescale/gianfar.c @@ -2440,7 +2440,8 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev) tx_queue->tx_ring_size); if (likely(!nr_frags)) { - lstatus |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT); + if (likely(!do_tstamp)) + lstatus |= BD_LFLAG(TXBD_LAST | TXBD_INTERRUPT); } else { u32 lstatus_start = lstatus; -- 2.1.0.27.g96db324