[PATCH net-next 1/2] net: mvneta: add xmit_more support

Eric Dumazet eric.dumazet at gmail.com
Tue Sep 13 07:42:28 PDT 2016


On Tue, 2016-09-13 at 07:33 -0700, Eric Dumazet wrote:

> Hi Marcin
> 
> Well, given the above comment, and fact that MVNETA_MAX_TXD == 532, it
> looks like you might add a bug if more than 256 skb are given to your
> ndo_start_xmit() with skb->xmit_more = 1
> 
> I therefore suggest you make sure it does not happen.
> 
> txq->pending += frags;
> if (!skb->xmit_more ||
>     txq->pending > 256 - MVNETA_MAX_SKB_DESCS ||
>     netif_xmit_stopped(nq))
> 	mvneta_txq_pend_desc_add(pp, txq)
> 

Another solution would be to test the potential overflow in mvneta_tx()
and force a mvneta_txq_pend_desc_add(pp, txq) _before_ adding the desc
of the "about to be cooked" TSO packet.

(This is because MVNETA_MAX_SKB_DESCS is 217, so 255-217 leaves few room
for xmit_more to show its power)







More information about the linux-arm-kernel mailing list