diff options
| author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2023-01-23 09:56:00 -0300 |
|---|---|---|
| committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2023-01-23 09:56:00 -0300 |
| commit | 91f67b9a6472a243e2c0630f637ddff0af08038e (patch) | |
| tree | 2ba948b5b9a9c13b3494efb3a4006c15db1cbb37 /drivers/net/virtio_net.c | |
| parent | 5670ebf54bd26482f57a094c53bdc562c106e0a9 (diff) | |
| parent | 2475bf0250dee99b477e0c56d7dc9d7ac3f04117 (diff) | |
Merge remote-tracking branch 'torvalds/master' into perf/core
To pick fixes that went via perf/urgent.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'drivers/net/virtio_net.c')
| -rw-r--r-- | drivers/net/virtio_net.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 7723b2a49d8e..18b3de854aeb 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -1877,8 +1877,10 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev) */ if (sq->vq->num_free < 2+MAX_SKB_FRAGS) { netif_stop_subqueue(dev, qnum); - if (!use_napi && - unlikely(!virtqueue_enable_cb_delayed(sq->vq))) { + if (use_napi) { + if (unlikely(!virtqueue_enable_cb_delayed(sq->vq))) + virtqueue_napi_schedule(&sq->napi, sq->vq); + } else if (unlikely(!virtqueue_enable_cb_delayed(sq->vq))) { /* More just got used, free them then recheck. */ free_old_xmit_skbs(sq, false); if (sq->vq->num_free >= 2+MAX_SKB_FRAGS) { |
