]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbe: Fix FCOE memory leak for DDP packets
authorAlexander Duyck <alexander.h.duyck@intel.com>
Thu, 2 Jun 2011 04:29:23 +0000 (04:29 +0000)
committerJoe Jin <joe.jin@oracle.com>
Fri, 3 Feb 2012 01:21:46 +0000 (09:21 +0800)
This patch is meant to fix a memory leak found via code review for FCOE.
Specifically on DDP flows the SKBs were being dropped without being
recycled, freed, or given to the stack.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 63d635b21c00069b5ade7640bcbe8ab912dc65d1)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/ixgbe/ixgbe_main.c

index de6ed9837dbb758229578c5f0c67ff431f1840c3..f915412dd50c5288ad5b17d7d09415296280ec1b 100644 (file)
@@ -1514,8 +1514,10 @@ static void ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
                if (ixgbe_rx_is_fcoe(adapter, rx_desc)) {
                        ddp_bytes = ixgbe_fcoe_ddp(adapter, rx_desc, skb,
                                                   staterr);
-                       if (!ddp_bytes)
+                       if (!ddp_bytes) {
+                               dev_kfree_skb_any(skb);
                                goto next_desc;
+                       }
                }
 #endif /* IXGBE_FCOE */
                ixgbe_receive_skb(q_vector, skb, staterr, rx_ring, rx_desc);