From patchwork Wed Nov 26 02:08:48 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 414960 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 9D953140168 for ; Wed, 26 Nov 2014 13:08:58 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752086AbaKZCI4 (ORCPT ); Tue, 25 Nov 2014 21:08:56 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:52190 "EHLO mail-pa0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751837AbaKZCIx (ORCPT ); Tue, 25 Nov 2014 21:08:53 -0500 Received: by mail-pa0-f45.google.com with SMTP id lj1so1806398pab.32 for ; Tue, 25 Nov 2014 18:08:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3BdBaqw67n7mziiAXceNQYAyPTRQDaNJROntccaDXNI=; b=RsPqSXmAcZ1/svMzte2Yo+oGp01Rva/h8K5YKepRXoqZG1yZlsRCU306X+ZSA0Z4Ir yD3lkhtnhp8NhWbanreJ9immFVYSdfua1BENuGGimefxFJ0xRDpttA9sZFxwdkzDckNL lGkVD+IyCP5q2BOxl/5jOTXTBcVKLle1XTDB84dOi3p9nfG2WVLKt5+Fao7XNoobp4oW 6XSTm2Hl/y2hFOXJ2YD6tvimqPs7qlC8zQyaAbH85Zx6mr5utFuk8ISLOqStsg0wJdXB uglNU2ww42ypSsveF4zI/i4w+BM1yYT5g08tvR4bLMMSn7Ezt7FxqS8sgZsXoC6tao8B MuJg== X-Received: by 10.68.226.6 with SMTP id ro6mr48409473pbc.31.1416967733417; Tue, 25 Nov 2014 18:08:53 -0800 (PST) Received: from fainelli-desktop.broadcom.com (5520-maca-inet1-outside.broadcom.com. [216.31.211.11]) by mx.google.com with ESMTPSA id y9sm2689741pdj.29.2014.11.25.18.08.52 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 25 Nov 2014 18:08:52 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: davem@davemloft.net, Florian Fainelli Subject: [PATCH net 1/2] net: dsa: bcm_sf2: fix unmapping registers in case of errors Date: Tue, 25 Nov 2014 18:08:48 -0800 Message-Id: <1416967729-717-2-git-send-email-f.fainelli@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1416967729-717-1-git-send-email-f.fainelli@gmail.com> References: <1416967729-717-1-git-send-email-f.fainelli@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In case we fail to ioremap() one of our registers, we would be leaking existing mappings, unwind those accordingly on errors. Fixes: 246d7f773c13 ("net: dsa: add Broadcom SF2 switch driver") Signed-off-by: Florian Fainelli --- drivers/net/dsa/bcm_sf2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c index b9625968daac..46632e8b6336 100644 --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c @@ -404,7 +404,8 @@ static int bcm_sf2_sw_setup(struct dsa_switch *ds) *base = of_iomap(dn, i); if (*base == NULL) { pr_err("unable to find register: %s\n", reg_names[i]); - return -ENODEV; + ret = -ENOMEM; + goto out_unmap; } base++; } @@ -484,7 +485,8 @@ out_free_irq0: out_unmap: base = &priv->core; for (i = 0; i < BCM_SF2_REGS_NUM; i++) { - iounmap(*base); + if (*base) + iounmap(*base); base++; } return ret;