From patchwork Fri Mar 10 16:34:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 737454 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 3vftD51XjRz9s7t for ; Sat, 11 Mar 2017 03:35:33 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="AsEsJ94p"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755483AbdCJQfb (ORCPT ); Fri, 10 Mar 2017 11:35:31 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:34541 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932691AbdCJQfJ (ORCPT ); Fri, 10 Mar 2017 11:35:09 -0500 Received: by mail-wm0-f65.google.com with SMTP id u132so3114518wmg.1; Fri, 10 Mar 2017 08:35:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7SUEV7p6yXnioesYOHqfI+72G7IIiRtazuM/svea9xo=; b=AsEsJ94pP8kjevLUWs2wHPZogr2CxecIP7kTLMicNOft6+RzT6cWTEUidFpE02YzRP K2v2CUuRo0P5ZJNUbw2J50KRptq43lePlDlE+fmyfkiqka7JPBDt8gz8uFizFSWI09LO VmXtFqUwRzdU7oSn9LtwzD2Cd9tgLzy43KdOoPT7px2plR6LWFvA1J0Z0IV9DY9H9CFC k88+8+cBouS13hvI2KnI5e82VIOk+QQiL2Otfxx3C/RF3HKsF1nty+9cLDupATK9a5X4 7Eyjaap0MQsbcTrwdVAgfGLmFXD1WP8DuBrY3pi8V4vNPj8HrIN1mTP3JyduxrDlJ45Y w4oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7SUEV7p6yXnioesYOHqfI+72G7IIiRtazuM/svea9xo=; b=fdbCVRcd6ViQqHfx+HQHNP4Hu+HMns2WoqjTRHd06bXeh8uhZMcrLSrx9aQCT0yeJT har4+0uQGJuxh7Senppl6v3OthGWzspX9VoDP1nYc70U6Eucw9SpfG0KSnm32PzpsZpw DWqixVgvTKU9liyHirc3+UNehDolufxmQWoKF54kStX2/LH+mQFbG5G16P6UvZPiAbvM Cg9m1KrCzDUbr0YIIl+EcGJ9UBLoUASA2fLuiyeWvmP6nw1CSm1QqSaSpMu73BILCTRX MZ0CHrrTH3QAAqHeQGW/tmBYpzjtVAyVkUkOeWyn+oafu1AfofpCh/40zNaeR8fhxauI izmA== X-Gm-Message-State: AFeK/H1spgbaRsq7yn7gOvAoWp7+OXHySZ6SB7T4a5gtfFHIUffVwqdoB1IqTkeWl/TAiQ== X-Received: by 10.28.1.68 with SMTP id 65mr3217005wmb.63.1489163706870; Fri, 10 Mar 2017 08:35:06 -0800 (PST) Received: from localhost (port-55061.pppoe.wtnet.de. [46.59.215.197]) by smtp.gmail.com with ESMTPSA id i133sm4010320wmg.26.2017.03.10.08.35.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 10 Mar 2017 08:35:05 -0800 (PST) From: Thierry Reding To: "David S . Miller" Cc: Giuseppe Cavallaro , Alexandre Torgue , Joao Pinto , Jon Hunter , Mikko Perttunen , netdev@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/9] net: stmmac: Stop PHY and remove TX timer on error Date: Fri, 10 Mar 2017 17:34:54 +0100 Message-Id: <20170310163501.31811-3-thierry.reding@gmail.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170310163501.31811-1-thierry.reding@gmail.com> References: <20170310163501.31811-1-thierry.reding@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Thierry Reding If an error occurs while opening the device, make sure that both the TX timer and the PHY are properly cleaned up. Signed-off-by: Thierry Reding --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 4498a3861aa3..7c38c9baf238 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1821,7 +1821,7 @@ static int stmmac_open(struct net_device *dev) netdev_err(priv->dev, "%s: ERROR: allocating the IRQ %d (error: %d)\n", __func__, dev->irq, ret); - goto init_error; + goto irq_error; } /* Request the Wake IRQ in case of another line is used for WoL */ @@ -1858,7 +1858,11 @@ static int stmmac_open(struct net_device *dev) free_irq(priv->wol_irq, dev); wolirq_error: free_irq(dev->irq, dev); +irq_error: + if (dev->phydev) + phy_stop(dev->phydev); + del_timer_sync(&priv->txtimer); init_error: free_dma_desc_resources(priv); dma_desc_error: