]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/net/virtio_net.c
virtio_net: do not reschedule rx refill forever
[karo-tx-linux.git] / drivers / net / virtio_net.c
index 1edb7a61983c05660aaec2624e596159ab2cd5c9..ee7571195b10d9137aa126ec1e66ecfba1765fa2 100644 (file)
@@ -415,7 +415,7 @@ static int add_recvbuf_mergeable(struct virtnet_info *vi, gfp_t gfp)
 static bool try_fill_recv(struct virtnet_info *vi, gfp_t gfp)
 {
        int err;
-       bool oom = false;
+       bool oom;
 
        do {
                if (vi->mergeable_rx_bufs)
@@ -425,10 +425,9 @@ static bool try_fill_recv(struct virtnet_info *vi, gfp_t gfp)
                else
                        err = add_recvbuf_small(vi, gfp);
 
-               if (err < 0) {
-                       oom = true;
+               oom = err == -ENOMEM;
+               if (err < 0)
                        break;
-               }
                ++vi->num;
        } while (err > 0);
        if (unlikely(vi->num > vi->max))