From patchwork Thu Jul 8 12:10:03 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kulikov Vasiliy X-Patchwork-Id: 58245 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 362B9B6EEC for ; Thu, 8 Jul 2010 22:10:21 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756599Ab0GHMKN (ORCPT ); Thu, 8 Jul 2010 08:10:13 -0400 Received: from mail-ey0-f174.google.com ([209.85.215.174]:42704 "EHLO mail-ey0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756577Ab0GHMKL (ORCPT ); Thu, 8 Jul 2010 08:10:11 -0400 Received: by eya25 with SMTP id 25so85516eya.19 for ; Thu, 08 Jul 2010 05:10:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=uE+XtLFDEko9bEiSLz7q85OwPjBNNEQAi8msVD8WY6M=; b=lc2MXt4H+wQpnj/jBhg10IJETBzFkidqmQPbvV1PGl7sY0LFcF57mclJq7P3vXWzrL GweSBzkl4GIGLBGa9Jgu2C9uWmdz3AZKIN/xFuzpeFpDXaXxT8QdSwdY4E3xaZzzAsWa LTulW1co4Yx57gBboxWxD4JugxrRrz1FYTgL8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=g/El6oxJbRtHZRxk1xhliVus1qp9ccR1x/kW26eIjnECaCHajHoUDAo5qIibIe2md9 ZpQSjKrzzXQg2l56g3TUAeDTLWD+YiSG5/gQAyvp9FsSD5R/pOysULYHasG9jqHAUvNy IVhUBqtLUICDeXR9ovZ1hFA56VqWomK5VzcMI= Received: by 10.213.26.75 with SMTP id d11mr6830550ebc.27.1278591009050; Thu, 08 Jul 2010 05:10:09 -0700 (PDT) Received: from localhost (ppp91-78-208-116.pppoe.mtu-net.ru [91.78.208.116]) by mx.google.com with ESMTPS id z55sm70731231eeh.3.2010.07.08.05.10.06 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 08 Jul 2010 05:10:07 -0700 (PDT) From: Kulikov Vasiliy To: Kernel Janitors Cc: "David S. Miller" , John Linn , Grant Likely , Jiri Pirko , Brian Hill , netdev@vger.kernel.org Subject: [PATCH 2/4] ll_temac: fix memory leak Date: Thu, 8 Jul 2010 16:10:03 +0400 Message-Id: <1278591006-3156-1-git-send-email-segooon@gmail.com> X-Mailer: git-send-email 1.7.0.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If of_iomap() or irq_of_parse_and_map() fail then np must be freed. Signed-off-by: Kulikov Vasiliy --- drivers/net/ll_temac_main.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c index 5bca20b..a2da3d7 100644 --- a/drivers/net/ll_temac_main.c +++ b/drivers/net/ll_temac_main.c @@ -999,19 +999,22 @@ temac_of_probe(struct of_device *op, const struct of_device_id *match) dev_dbg(&op->dev, "MEM base: %p\n", lp->sdma_regs); } else { dev_err(&op->dev, "unable to map DMA registers\n"); + of_node_put(np); goto err_iounmap; } } lp->rx_irq = irq_of_parse_and_map(np, 0); lp->tx_irq = irq_of_parse_and_map(np, 1); + + of_node_put(np); /* Finished with the DMA node; drop the reference */ + if ((lp->rx_irq == NO_IRQ) || (lp->tx_irq == NO_IRQ)) { dev_err(&op->dev, "could not determine irqs\n"); rc = -ENOMEM; goto err_iounmap_2; } - of_node_put(np); /* Finished with the DMA node; drop the reference */ /* Retrieve the MAC address */ addr = of_get_property(op->dev.of_node, "local-mac-address", &size);