[prev in list] [next in list] [prev in thread] [next in thread] 

List:       git-commits-head
Subject:    mlx4_en: Handle page allocation failure during receive
From:       Linux Kernel Mailing List <linux-kernel () vger ! kernel ! org>
Date:       2009-04-29 17:59:14
Message-ID: 200904291759.n3THxEJe021205 () hera ! kernel ! org
[Download RAW message or body]

Gitweb:     http://git.kernel.org/linus/785a0982eaaeae2fbe3372d1c9c769e8156a7a5a
Commit:     785a0982eaaeae2fbe3372d1c9c769e8156a7a5a
Parent:     a4233304bb43f87f97fc2ac9143b513814dcf094
Author:     Yevgeny Petrilin <yevgenyp@mellanox.co.il>
AuthorDate: Sun Apr 26 20:42:57 2009 +0000
Committer:  David S. Miller <davem@davemloft.net>
CommitDate: Mon Apr 27 02:31:31 2009 -0700

    mlx4_en: Handle page allocation failure during receive
    
    If we failed to allocate new fragments for receive buffer,
    the packet should be dropped and packets should be reused.
    
    Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
    Signed-off-by: David S. Miller <davem@davemloft.net>
---
 drivers/net/mlx4/en_rx.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/net/mlx4/en_rx.c b/drivers/net/mlx4/en_rx.c
index 0cbb78c..7942c4d 100644
--- a/drivers/net/mlx4/en_rx.c
+++ b/drivers/net/mlx4/en_rx.c
@@ -610,6 +610,10 @@ static struct sk_buff *mlx4_en_rx_skb(struct mlx4_en_priv *priv,
 		used_frags = mlx4_en_complete_rx_desc(priv, rx_desc, skb_frags,
 						      skb_shinfo(skb)->frags,
 						      page_alloc, length);
+		if (unlikely(!used_frags)) {
+			kfree_skb(skb);
+			return NULL;
+		}
 		skb_shinfo(skb)->nr_frags = used_frags;
 
 		/* Copy headers into the skb linear buffer */
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic