Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c223a078 authored by David S. Miller's avatar David S. Miller
Browse files

virtio_net: Support netdev_ops->ndo_xmit_flush()

parent c1ebf46c
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -934,7 +934,6 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
		dev_kfree_skb_any(skb);
		return NETDEV_TX_OK;
	}
	virtqueue_kick(sq->vq);

	/* Don't wait up for transmitted skbs to be freed. */
	skb_orphan(skb);
@@ -957,6 +956,14 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
	return NETDEV_TX_OK;
}

static void xmit_flush(struct net_device *dev, u16 qnum)
{
	struct virtnet_info *vi = netdev_priv(dev);
	struct send_queue *sq = &vi->sq[qnum];

	virtqueue_kick(sq->vq);
}

/*
 * Send command via the control virtqueue and check status.  Commands
 * supported by the hypervisor, as indicated by feature bits, should
@@ -1386,6 +1393,7 @@ static const struct net_device_ops virtnet_netdev = {
	.ndo_open            = virtnet_open,
	.ndo_stop   	     = virtnet_close,
	.ndo_start_xmit      = start_xmit,
	.ndo_xmit_flush      = xmit_flush,
	.ndo_validate_addr   = eth_validate_addr,
	.ndo_set_mac_address = virtnet_set_mac_address,
	.ndo_set_rx_mode     = virtnet_set_rx_mode,