Subject: [PATCH] virtio_net: indicate oom when addbuf returns failure

From: Rusty Russell <[email-masked]>
Date: Fri, 4 Jun 2010 10:28:56 +0930

This patch is a subset of an already upstream patch, but this portion
is useful in earlier releases.

Please consider for the 2.6.32 and 2.6.33 stable trees.

If the add_buf operation fails, indicate failure to the caller.

Signed-off-by: Bruce Rogers <[email-masked]>
Signed-off-by: Rusty Russell <[email-masked]>

--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c

@@ -318,6 +318,7 @@ static bool try_fill_recv_maxbufs(struct
                        skb_unlink(skb, &vi->recv);
                        trim_pages(vi, skb);
                        kfree_skb(skb);
+                       oom = true;
                        break;
                }
                vi->num++;
@@ -368,6 +369,7 @@ static bool try_fill_recv(struct virtnet
                if (err < 0) {
                        skb_unlink(skb, &vi->recv);
                        kfree_skb(skb);
+                       oom = true;
                        break;
                }
                vi->num++;