mirror of
https://github.com/torvalds/linux
synced 2024-07-24 03:59:21 +00:00
virtio_net: reorder some funcs
The purpose of this is to facilitate the subsequent addition of new functions without introducing a separate declaration. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
484b705979
commit
25074a44ac
|
@ -545,6 +545,52 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,
|
|||
return skb;
|
||||
}
|
||||
|
||||
static void free_old_xmit_skbs(struct send_queue *sq, bool in_napi)
|
||||
{
|
||||
unsigned int len;
|
||||
unsigned int packets = 0;
|
||||
unsigned int bytes = 0;
|
||||
void *ptr;
|
||||
|
||||
while ((ptr = virtqueue_get_buf(sq->vq, &len)) != NULL) {
|
||||
if (likely(!is_xdp_frame(ptr))) {
|
||||
struct sk_buff *skb = ptr;
|
||||
|
||||
pr_debug("Sent skb %p\n", skb);
|
||||
|
||||
bytes += skb->len;
|
||||
napi_consume_skb(skb, in_napi);
|
||||
} else {
|
||||
struct xdp_frame *frame = ptr_to_xdp(ptr);
|
||||
|
||||
bytes += xdp_get_frame_len(frame);
|
||||
xdp_return_frame(frame);
|
||||
}
|
||||
packets++;
|
||||
}
|
||||
|
||||
/* Avoid overhead when no packets have been processed
|
||||
* happens when called speculatively from start_xmit.
|
||||
*/
|
||||
if (!packets)
|
||||
return;
|
||||
|
||||
u64_stats_update_begin(&sq->stats.syncp);
|
||||
sq->stats.bytes += bytes;
|
||||
sq->stats.packets += packets;
|
||||
u64_stats_update_end(&sq->stats.syncp);
|
||||
}
|
||||
|
||||
static bool is_xdp_raw_buffer_queue(struct virtnet_info *vi, int q)
|
||||
{
|
||||
if (q < (vi->curr_queue_pairs - vi->xdp_queue_pairs))
|
||||
return false;
|
||||
else if (q < vi->curr_queue_pairs)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
static int __virtnet_xdp_xmit_one(struct virtnet_info *vi,
|
||||
struct send_queue *sq,
|
||||
struct xdp_frame *xdpf)
|
||||
|
@ -1714,52 +1760,6 @@ static int virtnet_receive(struct receive_queue *rq, int budget,
|
|||
return stats.packets;
|
||||
}
|
||||
|
||||
static void free_old_xmit_skbs(struct send_queue *sq, bool in_napi)
|
||||
{
|
||||
unsigned int len;
|
||||
unsigned int packets = 0;
|
||||
unsigned int bytes = 0;
|
||||
void *ptr;
|
||||
|
||||
while ((ptr = virtqueue_get_buf(sq->vq, &len)) != NULL) {
|
||||
if (likely(!is_xdp_frame(ptr))) {
|
||||
struct sk_buff *skb = ptr;
|
||||
|
||||
pr_debug("Sent skb %p\n", skb);
|
||||
|
||||
bytes += skb->len;
|
||||
napi_consume_skb(skb, in_napi);
|
||||
} else {
|
||||
struct xdp_frame *frame = ptr_to_xdp(ptr);
|
||||
|
||||
bytes += xdp_get_frame_len(frame);
|
||||
xdp_return_frame(frame);
|
||||
}
|
||||
packets++;
|
||||
}
|
||||
|
||||
/* Avoid overhead when no packets have been processed
|
||||
* happens when called speculatively from start_xmit.
|
||||
*/
|
||||
if (!packets)
|
||||
return;
|
||||
|
||||
u64_stats_update_begin(&sq->stats.syncp);
|
||||
sq->stats.bytes += bytes;
|
||||
sq->stats.packets += packets;
|
||||
u64_stats_update_end(&sq->stats.syncp);
|
||||
}
|
||||
|
||||
static bool is_xdp_raw_buffer_queue(struct virtnet_info *vi, int q)
|
||||
{
|
||||
if (q < (vi->curr_queue_pairs - vi->xdp_queue_pairs))
|
||||
return false;
|
||||
else if (q < vi->curr_queue_pairs)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
static void virtnet_poll_cleantx(struct receive_queue *rq)
|
||||
{
|
||||
struct virtnet_info *vi = rq->vq->vdev->priv;
|
||||
|
|
Loading…
Reference in a new issue