From: Arnd Bergmann <arnd@arndb.de> To: "David S. Miller" <davem@davemloft.net> Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann <arnd@arndb.de>, netdev@vger.kernel.org, Nicolas Ferre <nicolas.ferre@atmel.com>, linux-kernel@vger.kernel.org Subject: [PATCH 7/9] net: macb: avoid uninitialized variables Date: Wed, 27 Jan 2016 15:04:57 +0100 [thread overview] Message-ID: <1453903507-3427225-8-git-send-email-arnd@arndb.de> (raw) In-Reply-To: <1453903507-3427225-1-git-send-email-arnd@arndb.de> 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 <arnd@arndb.de> --- 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); -- 2.7.0
WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 7/9] net: macb: avoid uninitialized variables Date: Wed, 27 Jan 2016 15:04:57 +0100 [thread overview] Message-ID: <1453903507-3427225-8-git-send-email-arnd@arndb.de> (raw) In-Reply-To: <1453903507-3427225-1-git-send-email-arnd@arndb.de> 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 <arnd@arndb.de> --- 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); -- 2.7.0
next prev parent reply other threads:[~2016-01-27 14:08 UTC|newest] Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-27 14:04 [PATCH 0/9] network driver fixes Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 14:04 ` [PATCH 1/9] net: davinci_cpdma: use dma_addr_t for DMA address Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 14:04 ` [PATCH 2/9] net: hp100: remove unnecessary #ifdefs Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 14:04 ` [PATCH 3/9] net: bgmac: clarify CONFIG_BCMA dependency Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 16:11 ` Paul Gortmaker 2016-01-27 16:11 ` Paul Gortmaker 2016-01-27 16:11 ` Paul Gortmaker 2016-01-28 8:49 ` Arnd Bergmann 2016-01-28 8:49 ` Arnd Bergmann 2016-01-27 14:04 ` [PATCH 4/9] net: moxart: use correct accessors for DMA memory Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-28 12:36 ` David Laight 2016-01-28 12:36 ` David Laight 2016-01-28 16:53 ` Arnd Bergmann 2016-01-28 16:53 ` Arnd Bergmann 2016-01-28 16:58 ` Arnd Bergmann 2016-01-28 16:58 ` Arnd Bergmann 2016-01-27 14:04 ` [PATCH 5/9] net: fddi/defxx: avoid warning about uninitialized variable use Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 15:15 ` Maciej W. Rozycki 2016-01-27 15:15 ` Maciej W. Rozycki 2016-01-27 14:04 ` [PATCH 6/9] net: vxge: avoid unused function warnings Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann [this message] 2016-01-27 14:04 ` [PATCH 7/9] net: macb: avoid uninitialized variables Arnd Bergmann 2016-01-27 15:51 ` Nicolas Ferre 2016-01-27 15:51 ` Nicolas Ferre 2016-01-27 16:04 ` Nicolas Ferre 2016-01-27 16:04 ` Nicolas Ferre 2016-01-28 16:32 ` Arnd Bergmann 2016-01-28 16:32 ` Arnd Bergmann 2016-01-28 13:27 ` Sergei Shtylyov 2016-01-28 13:27 ` Sergei Shtylyov 2016-01-27 14:04 ` [PATCH 8/9] net: nb8800: avoid uninitialized variable warning Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-27 14:13 ` Måns Rullgård 2016-01-27 14:13 ` Måns Rullgård 2016-01-27 15:21 ` Arnd Bergmann 2016-01-27 15:21 ` Arnd Bergmann 2016-01-27 14:04 ` [PATCH 9/9] net: tg3: " Arnd Bergmann 2016-01-27 14:04 ` Arnd Bergmann 2016-01-29 0:14 ` [PATCH 0/9] network driver fixes David Miller 2016-01-29 0:14 ` David Miller 2016-01-29 12:56 ` Arnd Bergmann 2016-01-29 12:56 ` Arnd Bergmann
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1453903507-3427225-8-git-send-email-arnd@arndb.de \ --to=arnd@arndb.de \ --cc=davem@davemloft.net \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=netdev@vger.kernel.org \ --cc=nicolas.ferre@atmel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.