From patchwork Tue Mar 30 01:42:23 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Fleming X-Patchwork-Id: 48928 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id E6E39B7CE6 for ; Tue, 30 Mar 2010 12:42:33 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754882Ab0C3Bm2 (ORCPT ); Mon, 29 Mar 2010 21:42:28 -0400 Received: from az33egw02.freescale.net ([192.88.158.103]:55202 "EHLO az33egw02.freescale.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753591Ab0C3Bm1 (ORCPT ); Mon, 29 Mar 2010 21:42:27 -0400 Received: from az33smr01.freescale.net (az33smr01.freescale.net [10.64.34.199]) by az33egw02.freescale.net (8.14.3/az33egw02) with ESMTP id o2U1gO5h005822; Mon, 29 Mar 2010 18:42:24 -0700 (MST) Received: from localhost (firefly.am.freescale.net [10.82.123.6]) by az33smr01.freescale.net (8.13.1/8.13.0) with ESMTP id o2U1nrfm020679; Mon, 29 Mar 2010 20:49:53 -0500 (CDT) From: Andy Fleming To: davem@davemloft.net Cc: netdev@vger.kernel.org, eric.dumazet@gmail.com, Sandeep.Kumar@freescale.com Subject: [PATCH] gianfar: Fix a memory leak in gianfar close code Date: Mon, 29 Mar 2010 20:42:23 -0500 Message-Id: <1269913343-6566-1-git-send-email-afleming@freescale.com> X-Mailer: git-send-email 1.6.5.2.g6ff9a Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org gianfar needed to ensure existence of the *skbuff arrays before freeing the skbs in them, rather than ensuring their nonexistence. Signed-off-by: Andy Fleming --- drivers/net/gianfar.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index b671555..ad59608 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -1638,13 +1638,13 @@ static void free_skb_resources(struct gfar_private *priv) /* Go through all the buffer descriptors and free their data buffers */ for (i = 0; i < priv->num_tx_queues; i++) { tx_queue = priv->tx_queue[i]; - if(!tx_queue->tx_skbuff) + if(tx_queue->tx_skbuff) free_skb_tx_queue(tx_queue); } for (i = 0; i < priv->num_rx_queues; i++) { rx_queue = priv->rx_queue[i]; - if(!rx_queue->rx_skbuff) + if(rx_queue->rx_skbuff) free_skb_rx_queue(rx_queue); }