From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933608AbcA0Pvo (ORCPT ); Wed, 27 Jan 2016 10:51:44 -0500 Received: from eusmtp01.atmel.com ([212.144.249.242]:53255 "EHLO eusmtp01.atmel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932213AbcA0Pvl (ORCPT ); Wed, 27 Jan 2016 10:51:41 -0500 Subject: Re: [PATCH 7/9] net: macb: avoid uninitialized variables To: Arnd Bergmann , "David S. Miller" References: <1453903507-3427225-1-git-send-email-arnd@arndb.de> <1453903507-3427225-8-git-send-email-arnd@arndb.de> CC: , , From: Nicolas Ferre Organization: atmel Message-ID: <56A8E788.5020802@atmel.com> Date: Wed, 27 Jan 2016 16:51:36 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <1453903507-3427225-8-git-send-email-arnd@arndb.de> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.161.30.18] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 27/01/2016 15:04, Arnd Bergmann a écrit : > The macb_clk_init function returns three clock pointers, unless > the it fails to get the first ones. We correctly handle the > failure case by propagating the error from macb_probe, but > gcc does not realize this and incorrectly warns about a later > use of those: > > In file included from /git/arm-soc/drivers/net/ethernet/cadence/macb.c:12:0: > drivers/net/ethernet/cadence/macb.c: In function 'macb_probe': > include/linux/clk.h:484:2: error: 'tx_clk' may be used uninitialized in this function [-Werror=maybe-uninitialized] > clk_disable(clk); > ^ > drivers/net/ethernet/cadence/macb.c:2822:28: note: 'tx_clk' was declared here > struct clk *pclk, *hclk, *tx_clk; > ^ > In file included from /git/arm-soc/drivers/net/ethernet/cadence/macb.c:12:0: > include/linux/clk.h:484:2: error: 'hclk' may be used uninitialized in this function [-Werror=maybe-uninitialized] > clk_disable(clk); > ^ > drivers/net/ethernet/cadence/macb.c:2822:21: note: 'hclk' was declared here > struct clk *pclk, *hclk, *tx_clk; > ^ > > This shuts up the misleading warnings by ensuring that the > macb_clk_init() always stores something into all three pointers. > > Signed-off-by: Arnd Bergmann Okay Arnd, thanks! Acked-by: Nicolas Ferre > --- > drivers/net/ethernet/cadence/macb.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c > index 9d9984a87d42..d3aa74f9db79 100644 > --- a/drivers/net/ethernet/cadence/macb.c > +++ b/drivers/net/ethernet/cadence/macb.c > @@ -2268,6 +2268,7 @@ static int macb_clk_init(struct platform_device *pdev, struct clk **pclk, > { > int err; > > + *tx_clk = *hclk = NULL; > *pclk = devm_clk_get(&pdev->dev, "pclk"); > if (IS_ERR(*pclk)) { > err = PTR_ERR(*pclk); > -- Nicolas Ferre