diff options
Diffstat (limited to 'drivers/net/veth.c')
| -rw-r--r-- | drivers/net/veth.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 466da01ba2e3..2cb833b3006a 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -312,6 +312,7 @@ static bool veth_skb_is_eligible_for_gro(const struct net_device *dev,  static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)  {  	struct veth_priv *rcv_priv, *priv = netdev_priv(dev); +	struct netdev_queue *queue = NULL;  	struct veth_rq *rq = NULL;  	struct net_device *rcv;  	int length = skb->len; @@ -329,6 +330,7 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)  	rxq = skb_get_queue_mapping(skb);  	if (rxq < rcv->real_num_rx_queues) {  		rq = &rcv_priv->rq[rxq]; +		queue = netdev_get_tx_queue(dev, rxq);  		/* The napi pointer is available when an XDP program is  		 * attached or when GRO is enabled @@ -340,6 +342,8 @@ static netdev_tx_t veth_xmit(struct sk_buff *skb, struct net_device *dev)  	skb_tx_timestamp(skb);  	if (likely(veth_forward_skb(rcv, skb, rq, use_napi) == NET_RX_SUCCESS)) { +		if (queue) +			txq_trans_cond_update(queue);  		if (!use_napi)  			dev_lstats_add(dev, length);  	} else {  |