From patchwork Wed Nov 30 14:29:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johan Hovold X-Patchwork-Id: 701039 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 3tTNGz6q8Fz9vDp for ; Thu, 1 Dec 2016 01:34:51 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="huWzkqBR"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932362AbcK3OeP (ORCPT ); Wed, 30 Nov 2016 09:34:15 -0500 Received: from mail-lf0-f66.google.com ([209.85.215.66]:33494 "EHLO mail-lf0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757693AbcK3Ocf (ORCPT ); Wed, 30 Nov 2016 09:32:35 -0500 Received: by mail-lf0-f66.google.com with SMTP id 98so15952351lfs.0; Wed, 30 Nov 2016 06:32:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=gx798qs5wUet96Z6QC8ROm25/8ImfG26sx13PbdaPUE=; b=huWzkqBRlbnOoMxzo0T6MQesd7g0yVvncKw/jmozqUaVT/PVug5b37tda6MzrqMBo0 iU/cw0jr//NXMoy0hSLcRjk2PddvXTUWL+ZW3RsW/SXYB20PWppZrzqLMRV684k/tRi2 fZKh8CZxLWRalcbpoZST9TnMevlWxcl66NOlo6hsJv4DeVxb7rkFzNeyzlt0ZZSz5bw8 mFbrbndZg/dGLlWUxmAr6HCuc718WT1i7bhlAsUGTeRTAd/Z1hJJeQlftDZYR+NWCto4 tWiBVJbHHoRT5I3u2BgatjmDQnDB5NFGBu7jV0eCjkVnKZPJ4tv7kfogOCAqBk91Lkoj vu6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=gx798qs5wUet96Z6QC8ROm25/8ImfG26sx13PbdaPUE=; b=EMNPLi+3MuQoUY7+h4d5n1NF7uHQvRiWnxqfS1pbAHnSTvMN/i614BBfOMOOWIdmfT j9c6QBaGIcb2V3MnGhOeDe+fQEsSK4hOE/Xcbp/wStI+jmSh4/GTAlwwGjn8TwoOxugm Y65hJCBCbZ4DPxaIiyb6sa2eMzI8lH36mXNkMPN607/vyLe4gk04ZqAs/zql8kD92Eff NyqLpgjrgKnIp7lm0I98O/1Y+gLKRHuJwCdWunGVncZ0BMt2IcI0tP4wagmrwWNWHyqK EZgqUoNbrEh25cBlIRW6ndqJYLF/v/P6uaCDkcMeEpKX2ju6uvuqcEi7OqQKbnFfP27X zvHw== X-Gm-Message-State: AKaTC01hQLsCKRFW31zdx5D9MOPF7iUpaXDZvBwjlKqnOVC90CwHu7FAJ0BGc2GmA7eaEg== X-Received: by 10.25.56.65 with SMTP id d1mr11999075lfj.171.1480516353830; Wed, 30 Nov 2016 06:32:33 -0800 (PST) Received: from xi.terra (c-04aadb54.07-184-6d6c6d4.cust.bredbandsbolaget.se. [84.219.170.4]) by smtp.gmail.com with ESMTPSA id m129sm14482776lfe.6.2016.11.30.06.32.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Nov 2016 06:32:31 -0800 (PST) Received: from johan by xi.terra with local (Exim 4.87) (envelope-from ) id 1cC5vw-0007EL-Kk; Wed, 30 Nov 2016 15:32:28 +0100 From: Johan Hovold To: "David S. Miller" Cc: Giuseppe Cavallaro , Alexandre Torgue , Joachim Eastwood , Carlo Caione , Kevin Hilman , Maxime Coquelin , Maxime Ripard , Chen-Yu Tsai , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold Subject: [PATCH net 4/7] net: ethernet: stmmac: dwmac-generic: fix probe error path Date: Wed, 30 Nov 2016 15:29:52 +0100 Message-Id: <1480516195-27696-5-git-send-email-johan@kernel.org> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1480516195-27696-1-git-send-email-johan@kernel.org> References: <1480516195-27696-1-git-send-email-johan@kernel.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Make sure to call any exit() callback to undo the effect of init() before returning on late probe errors. Fixes: cf3f047b9af4 ("stmmac: move hw init in the probe (v2)") Signed-off-by: Johan Hovold --- drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c index b1e5f24708c9..05e46a82cdb1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-generic.c @@ -53,7 +53,17 @@ static int dwmac_generic_probe(struct platform_device *pdev) return ret; } - return stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); + ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); + if (ret) + goto err_exit; + + return 0; + +err_exit: + if (plat_dat->exit) + plat_dat->exit(pdev, plat_dat->bsp_priv); + + return ret; } static const struct of_device_id dwmac_generic_match[] = {