From patchwork Fri Jan 29 11:39:09 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101043 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1058024lbb; Fri, 29 Jan 2016 03:40:25 -0800 (PST) X-Received: by 10.98.44.195 with SMTP id s186mr12802628pfs.0.1454067625199; Fri, 29 Jan 2016 03:40:25 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id tl4si1755803pab.219.2016.01.29.03.40.24; Fri, 29 Jan 2016 03:40:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755997AbcA2LkQ (ORCPT + 30 others); Fri, 29 Jan 2016 06:40:16 -0500 Received: from mout.kundenserver.de ([212.227.126.134]:57270 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755871AbcA2LkK (ORCPT ); Fri, 29 Jan 2016 06:40:10 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0M4DMF-1a6lCh1x7j-00rmlB; Fri, 29 Jan 2016 12:39:40 +0100 From: Arnd Bergmann To: David Miller Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/7] net: moxart: use correct accessors for DMA memory Date: Fri, 29 Jan 2016 12:39:09 +0100 Message-Id: <1454067557-3546883-2-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1454067557-3546883-1-git-send-email-arnd@arndb.de> References: <1454067557-3546883-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:Xj3Lqvjj94lb84yGUXIhxgophH2PJ/IF+jwHvqsP8uBTMUQrUUC 7tXXUeJlP7Q0Df6eHaWoKHqX2Ke60+7VeaBSv9bfOEGPioTuK4y8bi0Pq5gpTROf3ztSTB9 yA9HqaoQ7GFz8s6WWv1+JFC5kX4jx+Le1VYfveII1oHeXRGncenDz2Bw1VGL5DFB8etzqgH bzX7Vp23M7KhMPpAO5skw== X-UI-Out-Filterresults: notjunk:1; V01:K0:SFRUXAaexvs=:TirvPcum8QvDBbFadNThY3 6chO06wLPPc3xvjLfz5S11teWX8722jOugZRoehc5HhnJCtpI6zO6t0qDSGrHdvm8QRIcooym 5qsHCSNBjY6HBuO91zx7qPy3s2RRS1GntzymMeVgEgj36Tuo77gHGwUWPIg1aywSmzYqV5IKM qNgLTZ+uBaNxIXgKCY96x/gTiPHY4TgEVxpqK+ZgLMxz8bl6WrI32aB/UR+JW/12EmvC2LF4r F0uiiH+sW1URmTewR7rhQzEeNRiUOpRvwwCsd/uao97eb2OMsTu2S9TuEbdgR4cZSlgMDmQiF P7tn4iCzP3QwszL4ytZd3xPBb32D3hDF6WxT2XYSG3IgTeRl3BzmqCu3T3qy01bvAX1UYylR0 gyls3h9NMtHCfI27Zzs4eSK8dznITiioJh8qOb+GyH1QwL5LI2BzftI9izYOQyQsxGcGs6Y0y RzWQEuvlT1lFPeMVBYeL3B9LTZlI8p5Rqwa0pxsGJ/Ro/QlEx2p3QOgJmezfYHDxhZYC17/SK aicvlXX3jKgLPFmf/gCIcdHFmM9wgvMTQWAOOcow38U8OMqOlXPt8AqJKWXvN9330GebMfy/L 5IcjsaliqSrK8OY+DhdzqUF8510GhXIoFF9l0pn2fCw49ceY2sKO5VT8tcgGhNhaN/B1zaM0l 7zrCB7JHY26FdkgReftw+VmnixaU7siitN7rjdm5W+80NkMdmGuP2P5PQXDj2kOkzeOY= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The moxart ethernet driver confuses coherent DMA buffers with MMIO registers. moxart_ether.c: In function 'moxart_mac_setup_desc_ring': moxart_ether.c:146:428: error: passing argument 1 of '__fswab32' makes integer from pointer without a cast [-Werror=int-conversion] moxart_ether.c:74:39: warning: incorrect type in argument 3 (different address spaces) moxart_ether.c:74:39: expected void *cpu_addr moxart_ether.c:74:39: got void [noderef] *tx_desc_base This leaves the basic logic alone and uses normal pointers for the virtual address of the descriptor. As we cannot use readl/writel to access them, we also introduce our own moxart_desc_read moxart_desc_write helpers that perform the same endianess swap as the original code, but without the address space conversion. The barriers are made explicit here where needed: Even in the worst-case scenario, we just have to use a rmb() after checking ownership so we don't read any input data before we are sure it is value, and we use wmb() before transferring ownership back to the device. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/moxa/moxart_ether.c | 46 +++++++++++++++++++++----------- drivers/net/ethernet/moxa/moxart_ether.h | 4 +-- 2 files changed, 32 insertions(+), 18 deletions(-) -- 2.7.0 diff --git a/drivers/net/ethernet/moxa/moxart_ether.c b/drivers/net/ethernet/moxa/moxart_ether.c index a10c928bbd6b..00cfd95ca59d 100644 --- a/drivers/net/ethernet/moxa/moxart_ether.c +++ b/drivers/net/ethernet/moxa/moxart_ether.c @@ -28,6 +28,16 @@ #include "moxart_ether.h" +static inline void moxart_desc_write(u32 data, u32 *desc) +{ + *desc = cpu_to_le32(data); +} + +static inline u32 moxart_desc_read(u32 *desc) +{ + return le32_to_cpu(*desc); +} + static inline void moxart_emac_write(struct net_device *ndev, unsigned int reg, unsigned long value) { @@ -112,7 +122,7 @@ static void moxart_mac_enable(struct net_device *ndev) static void moxart_mac_setup_desc_ring(struct net_device *ndev) { struct moxart_mac_priv_t *priv = netdev_priv(ndev); - void __iomem *desc; + void *desc; int i; for (i = 0; i < TX_DESC_NUM; i++) { @@ -121,7 +131,7 @@ static void moxart_mac_setup_desc_ring(struct net_device *ndev) priv->tx_buf[i] = priv->tx_buf_base + priv->tx_buf_size * i; } - writel(TX_DESC1_END, desc + TX_REG_OFFSET_DESC1); + moxart_desc_write(TX_DESC1_END, desc + TX_REG_OFFSET_DESC1); priv->tx_head = 0; priv->tx_tail = 0; @@ -129,8 +139,8 @@ static void moxart_mac_setup_desc_ring(struct net_device *ndev) for (i = 0; i < RX_DESC_NUM; i++) { desc = priv->rx_desc_base + i * RX_REG_DESC_SIZE; memset(desc, 0, RX_REG_DESC_SIZE); - writel(RX_DESC0_DMA_OWN, desc + RX_REG_OFFSET_DESC0); - writel(RX_BUF_SIZE & RX_DESC1_BUF_SIZE_MASK, + moxart_desc_write(RX_DESC0_DMA_OWN, desc + RX_REG_OFFSET_DESC0); + moxart_desc_write(RX_BUF_SIZE & RX_DESC1_BUF_SIZE_MASK, desc + RX_REG_OFFSET_DESC1); priv->rx_buf[i] = priv->rx_buf_base + priv->rx_buf_size * i; @@ -141,12 +151,12 @@ static void moxart_mac_setup_desc_ring(struct net_device *ndev) if (dma_mapping_error(&ndev->dev, priv->rx_mapping[i])) netdev_err(ndev, "DMA mapping error\n"); - writel(priv->rx_mapping[i], + moxart_desc_write(priv->rx_mapping[i], desc + RX_REG_OFFSET_DESC2 + RX_DESC2_ADDRESS_PHYS); - writel(priv->rx_buf[i], + moxart_desc_write((uintptr_t)priv->rx_buf[i], desc + RX_REG_OFFSET_DESC2 + RX_DESC2_ADDRESS_VIRT); } - writel(RX_DESC1_END, desc + RX_REG_OFFSET_DESC1); + moxart_desc_write(RX_DESC1_END, desc + RX_REG_OFFSET_DESC1); priv->rx_head = 0; @@ -201,14 +211,15 @@ static int moxart_rx_poll(struct napi_struct *napi, int budget) napi); struct net_device *ndev = priv->ndev; struct sk_buff *skb; - void __iomem *desc; + void *desc; unsigned int desc0, len; int rx_head = priv->rx_head; int rx = 0; while (rx < budget) { desc = priv->rx_desc_base + (RX_REG_DESC_SIZE * rx_head); - desc0 = readl(desc + RX_REG_OFFSET_DESC0); + desc0 = moxart_desc_read(desc + RX_REG_OFFSET_DESC0); + rmb(); /* ensure desc0 is up to date */ if (desc0 & RX_DESC0_DMA_OWN) break; @@ -250,7 +261,8 @@ static int moxart_rx_poll(struct napi_struct *napi, int budget) priv->stats.multicast++; rx_next: - writel(RX_DESC0_DMA_OWN, desc + RX_REG_OFFSET_DESC0); + wmb(); /* prevent setting ownership back too early */ + moxart_desc_write(RX_DESC0_DMA_OWN, desc + RX_REG_OFFSET_DESC0); rx_head = RX_NEXT(rx_head); priv->rx_head = rx_head; @@ -310,7 +322,7 @@ static irqreturn_t moxart_mac_interrupt(int irq, void *dev_id) static int moxart_mac_start_xmit(struct sk_buff *skb, struct net_device *ndev) { struct moxart_mac_priv_t *priv = netdev_priv(ndev); - void __iomem *desc; + void *desc; unsigned int len; unsigned int tx_head = priv->tx_head; u32 txdes1; @@ -319,11 +331,12 @@ static int moxart_mac_start_xmit(struct sk_buff *skb, struct net_device *ndev) desc = priv->tx_desc_base + (TX_REG_DESC_SIZE * tx_head); spin_lock_irq(&priv->txlock); - if (readl(desc + TX_REG_OFFSET_DESC0) & TX_DESC0_DMA_OWN) { + if (moxart_desc_read(desc + TX_REG_OFFSET_DESC0) & TX_DESC0_DMA_OWN) { net_dbg_ratelimited("no TX space for packet\n"); priv->stats.tx_dropped++; goto out_unlock; } + rmb(); /* ensure data is only read that had TX_DESC0_DMA_OWN cleared */ len = skb->len > TX_BUF_SIZE ? TX_BUF_SIZE : skb->len; @@ -337,9 +350,9 @@ static int moxart_mac_start_xmit(struct sk_buff *skb, struct net_device *ndev) priv->tx_len[tx_head] = len; priv->tx_skb[tx_head] = skb; - writel(priv->tx_mapping[tx_head], + moxart_desc_write(priv->tx_mapping[tx_head], desc + TX_REG_OFFSET_DESC2 + TX_DESC2_ADDRESS_PHYS); - writel(skb->data, + moxart_desc_write((uintptr_t)skb->data, desc + TX_REG_OFFSET_DESC2 + TX_DESC2_ADDRESS_VIRT); if (skb->len < ETH_ZLEN) { @@ -354,8 +367,9 @@ static int moxart_mac_start_xmit(struct sk_buff *skb, struct net_device *ndev) txdes1 = TX_DESC1_LTS | TX_DESC1_FTS | (len & TX_DESC1_BUF_SIZE_MASK); if (tx_head == TX_DESC_NUM_MASK) txdes1 |= TX_DESC1_END; - writel(txdes1, desc + TX_REG_OFFSET_DESC1); - writel(TX_DESC0_DMA_OWN, desc + TX_REG_OFFSET_DESC0); + moxart_desc_write(txdes1, desc + TX_REG_OFFSET_DESC1); + wmb(); /* flush descriptor before transferring ownership */ + moxart_desc_write(TX_DESC0_DMA_OWN, desc + TX_REG_OFFSET_DESC0); /* start to send packet */ writel(0xffffffff, priv->base + REG_TX_POLL_DEMAND); diff --git a/drivers/net/ethernet/moxa/moxart_ether.h b/drivers/net/ethernet/moxa/moxart_ether.h index 2be9280d608c..93a9563ac7c6 100644 --- a/drivers/net/ethernet/moxa/moxart_ether.h +++ b/drivers/net/ethernet/moxa/moxart_ether.h @@ -300,7 +300,7 @@ struct moxart_mac_priv_t { dma_addr_t rx_base; dma_addr_t rx_mapping[RX_DESC_NUM]; - void __iomem *rx_desc_base; + void *rx_desc_base; unsigned char *rx_buf_base; unsigned char *rx_buf[RX_DESC_NUM]; unsigned int rx_head; @@ -308,7 +308,7 @@ struct moxart_mac_priv_t { dma_addr_t tx_base; dma_addr_t tx_mapping[TX_DESC_NUM]; - void __iomem *tx_desc_base; + void *tx_desc_base; unsigned char *tx_buf_base; unsigned char *tx_buf[RX_DESC_NUM]; unsigned int tx_head; From patchwork Fri Jan 29 11:39:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101037 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1059427lbb; Fri, 29 Jan 2016 03:42:58 -0800 (PST) X-Received: by 10.98.10.81 with SMTP id s78mr12739209pfi.119.1454067778648; Fri, 29 Jan 2016 03:42:58 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w13si1790858pas.67.2016.01.29.03.42.58; Fri, 29 Jan 2016 03:42:58 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755985AbcA2Lmi (ORCPT + 30 others); Fri, 29 Jan 2016 06:42:38 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:52922 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756029AbcA2Lkh (ORCPT ); Fri, 29 Jan 2016 06:40:37 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0M2pmM-1a88Dl21Be-00sc6a; Fri, 29 Jan 2016 12:40:03 +0100 From: Arnd Bergmann To: David Miller , Jaroslav Kysela Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/7] net: hp100: remove unnecessary #ifdefs Date: Fri, 29 Jan 2016 12:39:11 +0100 Message-Id: <1454067557-3546883-4-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1454067557-3546883-1-git-send-email-arnd@arndb.de> References: <1454067557-3546883-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:SGD87V+BdyO+VzxahUbk5qXrW4rzL5q9dbPeX6flFuuFtWEPPHH T6MBVHxazEmFiQpiBdVll2MTP18JADOzCoPSyrugIROsIvLl3FoZDmoqqeB4/P7Rc7Sgg/N 3cUbOqOgaXh4+B72DgUfWmZe7WUoDq4WbzDpWXX5e65WCbPj1njkDO+GN26bDOiU7g1sV8K WgkqNI8sC2E1NGs2PogAg== X-UI-Out-Filterresults: notjunk:1; V01:K0:gGWoVEBlOwI=:FUqPdR8m/8Nhg37hUFMRoY 5kbeUHhn0ga9QPCdtudJPnXLmu92Clawz8GBxfSMM1/ConHgOMwuLbxyWu7TKNZCbacarHYjh TljXgS9HMnY6lCViaXGghPngXwP2we/eWx1frilCtSGJUNRbfVMy3/RaPtYTpSYBvjdv/V7ff KmOc/97GRizc87T+DEjNBIfOkAuDxYnXWzFC+7y76CybGf0x+g6aiDXpds2USJjfw2FF9oqoC HEHJgMZoHttvXtTwUtQNn5CAjrYmuYYhDqS27nu7MlNhUi3xASrTIMq4IKNfc13lwM6pxxmPe PtkHjqM9HfjBZqNOzvvBfprPQXst+F79bwSTWYRPzbzPnKslFyszFkicQsQ3WdfGFX7KBi57A GFcMynHRW4qXeOQBMER4os7ofikren8pubFdJ6O1zwZe3+btirobSulpF33Qdijb4ICWosPLt dDIU8oCrJtL0XVUtl+7gzcW7kVzTQUBfUGVAsBh9IH7OgHlx1f5dERMBdfjsC7/gtvsQGBSXQ nq0ZefmF4p3UO8wgAKYuIk83PE7i68dhrmyXTbfsWi4cCOA/tKY1912v2AsmK5kuc7xBW1tg6 oUtdhWmVisJbd/5EoiRuer0aAj+7uweOGHsJXswtn+vkQ7liSR6rhmTl65lgQzzxSXFuAtQS2 klkv+FBSNQIxJRTkfYuciWJ4QAXzESIN4kYNqWxbaVRRv5Mf3jnIPa7oohiG+w9Og0Ks= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Building the hp100 ethernet driver causes warnings when both the PCI and EISA drivers are disabled: ethernet/hp/hp100.c: In function 'hp100_module_init': ethernet/hp/hp100.c:3047:2: warning: label 'out3' defined but not used [-Wunused-label] ethernet/hp/hp100.c: At top level: ethernet/hp/hp100.c:2828:13: warning: 'cleanup_dev' defined but not used [-Wunused-function] We can easily avoid the warnings and make the driver look slightly nicer by removing the #ifdefs that check for the CONFIG_PCI and CONFIG_EISA, as all the registration functions are designed to have no effect when the buses are disabled. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/hp/hp100.c | 18 ------------------ 1 file changed, 18 deletions(-) -- 2.7.0 diff --git a/drivers/net/ethernet/hp/hp100.c b/drivers/net/ethernet/hp/hp100.c index 1d5c3e16d8f4..3daf2d4a7ca0 100644 --- a/drivers/net/ethernet/hp/hp100.c +++ b/drivers/net/ethernet/hp/hp100.c @@ -194,7 +194,6 @@ static const char *hp100_isa_tbl[] = { }; #endif -#ifdef CONFIG_EISA static struct eisa_device_id hp100_eisa_tbl[] = { { "HWPF180" }, /* HP J2577 rev A */ { "HWP1920" }, /* HP 27248B */ @@ -205,9 +204,7 @@ static struct eisa_device_id hp100_eisa_tbl[] = { { "" } /* Mandatory final entry ! */ }; MODULE_DEVICE_TABLE(eisa, hp100_eisa_tbl); -#endif -#ifdef CONFIG_PCI static const struct pci_device_id hp100_pci_tbl[] = { {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_J2585A, PCI_ANY_ID, PCI_ANY_ID,}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_J2585B, PCI_ANY_ID, PCI_ANY_ID,}, @@ -219,7 +216,6 @@ static const struct pci_device_id hp100_pci_tbl[] = { {} /* Terminating entry */ }; MODULE_DEVICE_TABLE(pci, hp100_pci_tbl); -#endif static int hp100_rx_ratio = HP100_DEFAULT_RX_RATIO; static int hp100_priority_tx = HP100_DEFAULT_PRIORITY_TX; @@ -2842,7 +2838,6 @@ static void cleanup_dev(struct net_device *d) free_netdev(d); } -#ifdef CONFIG_EISA static int hp100_eisa_probe(struct device *gendev) { struct net_device *dev = alloc_etherdev(sizeof(struct hp100_private)); @@ -2884,9 +2879,7 @@ static struct eisa_driver hp100_eisa_driver = { .remove = hp100_eisa_remove, } }; -#endif -#ifdef CONFIG_PCI static int hp100_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { @@ -2955,7 +2948,6 @@ static struct pci_driver hp100_pci_driver = { .probe = hp100_pci_probe, .remove = hp100_pci_remove, }; -#endif /* * module section @@ -3032,23 +3024,17 @@ static int __init hp100_module_init(void) err = hp100_isa_init(); if (err && err != -ENODEV) goto out; -#ifdef CONFIG_EISA err = eisa_driver_register(&hp100_eisa_driver); if (err && err != -ENODEV) goto out2; -#endif -#ifdef CONFIG_PCI err = pci_register_driver(&hp100_pci_driver); if (err && err != -ENODEV) goto out3; -#endif out: return err; out3: -#ifdef CONFIG_EISA eisa_driver_unregister (&hp100_eisa_driver); out2: -#endif hp100_isa_cleanup(); goto out; } @@ -3057,12 +3043,8 @@ static int __init hp100_module_init(void) static void __exit hp100_module_exit(void) { hp100_isa_cleanup(); -#ifdef CONFIG_EISA eisa_driver_unregister (&hp100_eisa_driver); -#endif -#ifdef CONFIG_PCI pci_unregister_driver (&hp100_pci_driver); -#endif } module_init(hp100_module_init) From patchwork Fri Jan 29 11:39:12 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101042 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1058434lbb; Fri, 29 Jan 2016 03:41:11 -0800 (PST) X-Received: by 10.66.147.136 with SMTP id tk8mr12594233pab.157.1454067659999; Fri, 29 Jan 2016 03:40:59 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s207si23582096pfs.86.2016.01.29.03.40.59; Fri, 29 Jan 2016 03:40:59 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932220AbcA2Lk4 (ORCPT + 30 others); Fri, 29 Jan 2016 06:40:56 -0500 Received: from mout.kundenserver.de ([212.227.126.134]:56818 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755599AbcA2Lky (ORCPT ); Fri, 29 Jan 2016 06:40:54 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0MXkkl-1acZHw2sFD-00WlpR; Fri, 29 Jan 2016 12:40:19 +0100 From: Arnd Bergmann To: David Miller Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , netdev@vger.kernel.org, Michael Chan , linux-kernel@vger.kernel.org Subject: [PATCH v2 4/7] net: bgmac: clarify CONFIG_BCMA dependency Date: Fri, 29 Jan 2016 12:39:12 +0100 Message-Id: <1454067557-3546883-5-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1454067557-3546883-1-git-send-email-arnd@arndb.de> References: <1454067557-3546883-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:fb6fcI0whP2LKlRCygwt1WsCW3OfeODkbbASiTxS34joo1cd7fm /LhFrpp1BLi9OREvCTyeY5ZuJVAzz3OtsBeKYWNNkjDCGjEmayfoVEdyBbykF61rKEE5XbU 6aPXBgq2lV3+7eGDAq7KoVIv9IlIpGrApFf/1FHDtCk6i3fLzyrkewTByJwR9XPbdjan5Da AgUSwl4cPG3bfa3qZN+iQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:BI5XqvzUYBU=:8eKnRmYGhhCt3LSzx4kzdN dlVyAAXJglyZ8thERKBw9exCSwBj4cyLl9E9OzKazSAxtfqVLRGrwxYjWzytsaBUUb8pOmKlY mtuhTrNtV1+I4xpfqREkrsqB4iCZVS8cJCL7TdZxzEHGoscjwoLFiximCRYyWVKyHFYZqlEB/ 85YED9I+LWI3id+yOFQa1EqBL4QkMAoh62TCTZpF6jw6l48geUB5vbJufbW90WItxNNHE8YEy xSqAPFoMuo3osbwtgtKU+VxxaHEs34tG04RgDhaOpdkRgUYnv6GY88uveShUMfHFCTHiFtsq+ rqQEWoYWDxmRNJkyZ+MOROacfz/8t1QSsacw1EDDV5DaAExqZHQ1ZWuhZa5pXxF8MZdHzdvl4 fKeW+Rud9RPe9WrgOyzcmKozyC7ZEOkRQ2vSYAhfAMcXaYC5SLbEb/SUYVph9/aLTmkV6To4p 0dqHtWLVao0S8JwQo00lE7H5VKVc23aGKYKXkuuvwvWcxfaRxNpQcWukrKxU3a7eFvJkUz6Rw TS2YaosWfpV1jQu9LXfVXNVadBwT/60zKVLn57RK4cPVJXRCqiKpmz93ROZMlZOxpUPDlqV5A YXBwcKU75uRJAA0prpspIXnCuCusb9Uid5YQ/s5GzWD4xJV4Zv7fRna/EvX0kaflZ5pEpEtCJ ROKR7jTcQHyxKEVfweuQC/C4UJu9VUNue4kbfJNxbyajTOu/1lmwXc0e82Mwhf6RmC+E= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The bgmac driver depends on BCMA_HOST_SOC, which is only used when CONFIG_BCMA is enabled. However, it is a bool option and can be set when CONFIG_BCMA=m, and then bgmac can be built-in, leading to an obvious link error: drivers/built-in.o: In function `bgmac_init': :(.init.text+0x7f2c): undefined reference to `__bcma_driver_register' drivers/built-in.o: In function `bgmac_exit': :(.exit.text+0x110a): undefined reference to `bcma_driver_unregister' To avoid this case, we need to depend on both BCMA and BCMA_SOC, as this patch does. I'm also trying to make the dependency more readable by splitting it into three lines, and adding a COMPILE_TEST alternative so we can test-build it in all configurations that support BCMA. The added dependency on FIXED_PHY addresses a related issue where we cannot call fixed_phy_register() when CONFIG_FIXED_PHY=m and CONFIG_BGMAC=y. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/broadcom/Kconfig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 2.7.0 diff --git a/drivers/net/ethernet/broadcom/Kconfig b/drivers/net/ethernet/broadcom/Kconfig index 8550df189ceb..19f7cd02e085 100644 --- a/drivers/net/ethernet/broadcom/Kconfig +++ b/drivers/net/ethernet/broadcom/Kconfig @@ -151,8 +151,11 @@ config BNX2X_VXLAN config BGMAC tristate "BCMA bus GBit core support" - depends on BCMA_HOST_SOC && HAS_DMA && (BCM47XX || ARCH_BCM_5301X) + depends on BCMA && BCMA_HOST_SOC + depends on HAS_DMA + depends on BCM47XX || ARCH_BCM_5301X || COMPILE_TEST select PHYLIB + select FIXED_PHY ---help--- This driver supports GBit MAC and BCM4706 GBit MAC cores on BCMA bus. They can be found on BCM47xx SoCs and provide gigabit ethernet. From patchwork Fri Jan 29 11:39:13 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101041 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1058586lbb; Fri, 29 Jan 2016 03:41:26 -0800 (PST) X-Received: by 10.98.16.69 with SMTP id y66mr10216405pfi.86.1454067678265; Fri, 29 Jan 2016 03:41:18 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y27si23832003pfi.79.2016.01.29.03.41.17; Fri, 29 Jan 2016 03:41:18 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756101AbcA2LlO (ORCPT + 30 others); Fri, 29 Jan 2016 06:41:14 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:64025 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755358AbcA2LlL (ORCPT ); Fri, 29 Jan 2016 06:41:11 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0MDU2z-1aJNi63ihx-00GssF; Fri, 29 Jan 2016 12:40:31 +0100 From: Arnd Bergmann To: David Miller Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , netdev@vger.kernel.org, Jon Mason , linux-kernel@vger.kernel.org Subject: [PATCH v2 5/7] net: vxge: avoid unused function warnings Date: Fri, 29 Jan 2016 12:39:13 +0100 Message-Id: <1454067557-3546883-6-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1454067557-3546883-1-git-send-email-arnd@arndb.de> References: <1454067557-3546883-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:EDTpTjybJ6+f3wzhAckzzjsJILlRsvnNpi+R8ol2n7RbNFttYjo wd0A2I0333kzlsbK1/6DNN2jMwl4maDnmAAEzb1hs+mocr34G88tTudk/wE2ohBz2TGrKfy OEv8uKuXdVkQpZINruXx7/WYBVK4ocva80+iSLrE9z3Yfz5x8yXyRalCj39gfFlr9laZdt1 2faMNVMxMEaBcmJb1VV7w== X-UI-Out-Filterresults: notjunk:1; V01:K0:mrFQo9VYYZE=:6nx3RwauYd/wt4auHpwM59 jVH08ScOhjtg6mNDu13s29zwXaccMWvs3j8lB4oysXJ7ADorYH1vb3nTdySZ0Iy6d57obah8L 1kGNIf5cSoRwHkepAQOwruMFLbko6BjODzB0YCGm1xY3LOVbrcYJTLR4+gJ0tVraSsaG2oDOh O6YfMMusI0MzeiJtFP9Tj5agmLMLZfw+JcykWtXVEidN7W1GI/v5BSQq257rZO3WzDyCt0KVK CdiPv8u0RLx75PivQNWHfAVc8XJfckJ2AtbbCdcRvgRT39ZO0ahf+xTMqqh26Bpwklgyvio9w UK3wmC+qBiVfq7B+KZKHk5FnB3Ff+w48Y5uFQ2T81s/LKImcjVrMbs9P4O1F+GSlZ0bWUnIlY WbGv5jKLEEhdV8jHnn1z8O/M0OIo8i9boLYS+ezDveUQW8YBd+SVehIxdpW/o58aj9MosjCbk +8cbq7RI8wT37vHLCRkcs2L91hfTNYGCpFmxhHvtsiORKz61ykH9VAO7hJOFUpaaTY/vB0sIk FvthkfTCL3zGlDpIvZatThdYRbNdBg53hM5wFaz6ATIBmeiAKDCgRDRcVNeB3hlfc9ikTEr0I 69Bzzy54XYYKEmgMSSOPlsqMsfc8H+/FKwmCEUCJSB+poQQJ1ef0HrVjnb18MpTIhCMD1QMYe Oj8Z/YaUmX1HcRhxdvxAByagBb72j7bITk5Cl+Y4wiBUuhFNGmWdTREyi1vaU0dHjzM0= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When CONFIG_PCI_MSI is disabled, we get warnings about unused functions in the vxge driver: drivers/net/ethernet/neterion/vxge/vxge-main.c:2121:13: warning: 'adaptive_coalesce_tx_interrupts' defined but not used [-Wunused-function] drivers/net/ethernet/neterion/vxge/vxge-main.c:2149:13: warning: 'adaptive_coalesce_rx_interrupts' defined but not used [-Wunused-function] We could add another #ifdef here, but it's nicer to avoid those warnings for good by converting the existing #ifdef to if(IS_ENABLED()), which has the same effect but provides better compile-time coverage in general, and lets the compiler understand better when the function is intentionally unused. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/neterion/vxge/vxge-main.c | 31 ++++++++++---------------- 1 file changed, 12 insertions(+), 19 deletions(-) -- 2.7.0 diff --git a/drivers/net/ethernet/neterion/vxge/vxge-main.c b/drivers/net/ethernet/neterion/vxge/vxge-main.c index 50d5604833ed..e0993eba5df3 100644 --- a/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c @@ -2223,8 +2223,6 @@ static irqreturn_t vxge_isr_napi(int irq, void *dev_id) return IRQ_NONE; } -#ifdef CONFIG_PCI_MSI - static irqreturn_t vxge_tx_msix_handle(int irq, void *dev_id) { struct vxge_fifo *fifo = (struct vxge_fifo *)dev_id; @@ -2442,16 +2440,13 @@ static void vxge_rem_msix_isr(struct vxgedev *vdev) if (vdev->config.intr_type == MSI_X) pci_disable_msix(vdev->pdev); } -#endif static void vxge_rem_isr(struct vxgedev *vdev) { -#ifdef CONFIG_PCI_MSI - if (vdev->config.intr_type == MSI_X) { + if (IS_ENABLED(CONFIG_PCI_MSI) && + vdev->config.intr_type == MSI_X) { vxge_rem_msix_isr(vdev); - } else -#endif - if (vdev->config.intr_type == INTA) { + } else if (vdev->config.intr_type == INTA) { synchronize_irq(vdev->pdev->irq); free_irq(vdev->pdev->irq, vdev); } @@ -2460,11 +2455,10 @@ static void vxge_rem_isr(struct vxgedev *vdev) static int vxge_add_isr(struct vxgedev *vdev) { int ret = 0; -#ifdef CONFIG_PCI_MSI int vp_idx = 0, intr_idx = 0, intr_cnt = 0, msix_idx = 0, irq_req = 0; int pci_fun = PCI_FUNC(vdev->pdev->devfn); - if (vdev->config.intr_type == MSI_X) + if (IS_ENABLED(CONFIG_PCI_MSI) && vdev->config.intr_type == MSI_X) ret = vxge_enable_msix(vdev); if (ret) { @@ -2475,7 +2469,7 @@ static int vxge_add_isr(struct vxgedev *vdev) vdev->config.intr_type = INTA; } - if (vdev->config.intr_type == MSI_X) { + if (IS_ENABLED(CONFIG_PCI_MSI) && vdev->config.intr_type == MSI_X) { for (intr_idx = 0; intr_idx < (vdev->no_of_vpath * VXGE_HW_VPATH_MSIX_ACTIVE); intr_idx++) { @@ -2576,9 +2570,8 @@ static int vxge_add_isr(struct vxgedev *vdev) vdev->vxge_entries[intr_cnt].in_use = 1; vdev->vxge_entries[intr_cnt].arg = &vdev->vpaths[0]; } -INTA_MODE: -#endif +INTA_MODE: if (vdev->config.intr_type == INTA) { snprintf(vdev->desc[0], VXGE_INTR_STRLEN, "%s:vxge:INTA", vdev->ndev->name); @@ -3889,12 +3882,12 @@ static void vxge_device_config_init(struct vxge_hw_device_config *device_config, if (max_mac_vpath > VXGE_MAX_MAC_ADDR_COUNT) max_mac_vpath = VXGE_MAX_MAC_ADDR_COUNT; -#ifndef CONFIG_PCI_MSI - vxge_debug_init(VXGE_ERR, - "%s: This Kernel does not support " - "MSI-X. Defaulting to INTA", VXGE_DRIVER_NAME); - *intr_type = INTA; -#endif + if (!IS_ENABLED(CONFIG_PCI_MSI)) { + vxge_debug_init(VXGE_ERR, + "%s: This Kernel does not support " + "MSI-X. Defaulting to INTA", VXGE_DRIVER_NAME); + *intr_type = INTA; + } /* Configure whether MSI-X or IRQL. */ switch (*intr_type) { From patchwork Fri Jan 29 11:39:14 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101040 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1058659lbb; Fri, 29 Jan 2016 03:41:34 -0800 (PST) X-Received: by 10.66.156.195 with SMTP id wg3mr12649101pab.54.1454067686494; Fri, 29 Jan 2016 03:41:26 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id ky14si2885388pab.41.2016.01.29.03.41.26; Fri, 29 Jan 2016 03:41:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932300AbcA2LlW (ORCPT + 30 others); Fri, 29 Jan 2016 06:41:22 -0500 Received: from mout.kundenserver.de ([212.227.126.135]:54047 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755358AbcA2LlR (ORCPT ); Fri, 29 Jan 2016 06:41:17 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0Mg2TZ-1alsxV3WnF-00NO9z; Fri, 29 Jan 2016 12:40:44 +0100 From: Arnd Bergmann To: David Miller Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , netdev@vger.kernel.org, =?utf-8?b?TcOlbnMgUnVsbGfDpXJk?= , linux-kernel@vger.kernel.org Subject: [PATCH v2 6/7] net: nb8800: avoid uninitialized variable warning Date: Fri, 29 Jan 2016 12:39:14 +0100 Message-Id: <1454067557-3546883-7-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1454067557-3546883-1-git-send-email-arnd@arndb.de> References: <1454067557-3546883-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:7tyQwf2yFdOl9jnOV/bq7uEieeYowMo0nJgB9J1c7gg8H7vCb2m QwtfAKhD1qL/jQucwnAjrSvMsSWskH/n5wSFwdDOUp4asp8vOez1gx3VIJfwsJ8WtG6BBAx M2zh3Fx1StGmPfDKi/bp4sQXqXvSePRN/UqpF7S1oj5dGUbYzLOXlvK8ouuuUGxblamWOXn M9XUzSHVyUbpzpkrUideQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:DOaT80U0qmI=:Dksrf2f9+V/Da+pm9yFjbt 4bxkVsFLPyfis2Uu8pMe0uwKpQSjoRtzdeopCnBW5C5ugvsQn4MCzafU4Kfvw1goSbkzKf7gG LOmO6b0yEYB1MooMw2SzolC3IdSRUIQ8++aTlQtrUGgyqthCaR7ffM1tHnQT7REGy83yXhr/S OVNmDcU3dh36dLpdwUvzlUjm+0QWpOW3ggJuc6OZ3DEO/69PF3fEg7gwGjK4s1uzhZcaD2b7I z0bZgrYat1nxjhpmcPTIQChMuvhacrZVS2OxiE5mf/Gz/tAuX8BS5yStYOZVaMcfP5MXJXyKP ZVLrU065DKx801T398xK2m3P/7vQFWS59gxG/jRJWmf0IRLp+XY2a09gWnqawmm5yi8sGru5m wDD79qCdqKt0Qsk1aovhs/zLuoZ0CM8BF81ZaALXHz6NOW4Ko9DUNJo53FYmGEpU7Zn7X1bYU t7oclarkF1vz1FHpD3MYqS8YFpPFKVJ6t1/5rhpICH8EpHiThM2dzJ+2PiUtphfToDHXMPAWl pScmWWW1AmdKI/jXMkip5ZjYFbJTRtAnn8wpPXIZJTlXDSBixMuDX/mIq42zygvl38Hzt8zN0 MHKOWqpkjeWyVGDxu28/b6OBnSE22hI6yYmHFqyoHbeJE3ydNx7SyJLwzBflthvtgC/OqDchZ WA2HDQ08WhXCgYIR/fwUTeFypRWRjH+yD5/vVd7pLqkfTTFQRT42Pov7UNtpDB5SbTHA= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The nb8800_poll() function initializes the 'next' variable in the loop looking for new input data. We know this will be called at least once because 'budget' is a guaranteed to be a positive number when we enter the function, but the compiler doesn't know that and warns when the variable is used later: drivers/net/ethernet/aurora/nb8800.c: In function 'nb8800_poll': drivers/net/ethernet/aurora/nb8800.c:350:21: warning: 'next' may be used uninitialized in this function [-Wmaybe-uninitialized] Changing the 'while() {}' loop to 'do {} while()' makes it obvious to the compiler what is going on so it no longer warns. Signed-off-by: Arnd Bergmann Acked-by: Mans Rullgard --- drivers/net/ethernet/aurora/nb8800.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.7.0 diff --git a/drivers/net/ethernet/aurora/nb8800.c b/drivers/net/ethernet/aurora/nb8800.c index ecc4a334c507..f71ab2647a3b 100644 --- a/drivers/net/ethernet/aurora/nb8800.c +++ b/drivers/net/ethernet/aurora/nb8800.c @@ -302,7 +302,7 @@ static int nb8800_poll(struct napi_struct *napi, int budget) nb8800_tx_done(dev); again: - while (work < budget) { + do { struct nb8800_rx_buf *rxb; unsigned int len; @@ -330,7 +330,7 @@ again: rxd->report = 0; last = next; work++; - } + } while (work < budget); if (work) { priv->rx_descs[last].desc.config |= DESC_EOC; From patchwork Fri Jan 29 11:39:15 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101039 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1058797lbb; Fri, 29 Jan 2016 03:41:49 -0800 (PST) X-Received: by 10.67.7.200 with SMTP id de8mr12724199pad.28.1454067709511; Fri, 29 Jan 2016 03:41:49 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r70si23813310pfr.123.2016.01.29.03.41.49; Fri, 29 Jan 2016 03:41:49 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756106AbcA2Llr (ORCPT + 30 others); Fri, 29 Jan 2016 06:41:47 -0500 Received: from mout.kundenserver.de ([212.227.126.130]:53199 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755906AbcA2Lln (ORCPT ); Fri, 29 Jan 2016 06:41:43 -0500 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue005) with ESMTPA (Nemesis) id 0Lpzr1-1Zuk5V22RL-00fk5h; Fri, 29 Jan 2016 12:40:58 +0100 From: Arnd Bergmann To: David Miller Cc: linux-arm-kernel@lists.infradead.org, Arnd Bergmann , netdev@vger.kernel.org, Prashant Sreedharan , Michael Chan , linux-kernel@vger.kernel.org Subject: [PATCH v2 7/7] net: tg3: avoid uninitialized variable warning Date: Fri, 29 Jan 2016 12:39:15 +0100 Message-Id: <1454067557-3546883-8-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 In-Reply-To: <1454067557-3546883-1-git-send-email-arnd@arndb.de> References: <1454067557-3546883-1-git-send-email-arnd@arndb.de> X-Provags-ID: V03:K0:8o89UAZeWIZC9AJ7HloiqVBLOBghr4cneJYlMtPPKba04aJqho4 AA0bLJ+4b3i73wynWCBWEkscA4Bam/DYfWcwaJkL/sQsuNNGaFG40Hfz90rDvIqdyUFXG8S t+llrndJhTni9DBxTXFKJKeded6LVI3y17NPT6y4h2TgrD90ZOJPJ7dQUgMPHp1qDJMbKWx IrMWq3LWkxRNNv6E5NyLg== X-UI-Out-Filterresults: notjunk:1; V01:K0:4PsJjvHBtcU=:Tn9y1/QZC/y1LgGTlqWCiE ua90ITr1Xor71wC5noRO+FLVmvOGP/dI+Zp7dNZFcvT0aaVN0bqyd5A+I8p6MAe1JtOwD/Imr Y0OAfbC5i2r6cqXjQUY7Zp5YDLVaPgxcPshjmDgg8RaLbmslgX02TE/lAt9Qx2QVsWrEcvNjO qLYUyXtGC50jSlkjW3BoBr+euNoNScUxyw1EXguBlx/gJjBkwZKvI4TRZw6bW9kjDVeeWaioR oVbhdRvMKumMeLwzbKFRs2e+S7oGlUXkgTmSQuGPcFlB0O8frun2HL0Md8ClrAn22nAyJ/mYM Hce8VGXej821HhLGCSsWX+e51BxNm79XEAwH2RWS5kmchtiAIAcYg0iWTTFxBYzQuAs1pvhUp 7qTmnET64bgEvFs2WOUc7lL8gWUnRlVPfallytW5p6cEzea8Ap8FzW1JBdAYcr8NS3FGt4S30 tW0F4uqwc7X2VtsGEDXEJ6SU21JpegAHvOT5+1f08j5hlL9Xn3dT9c6QaqGlKIzqRG3uKh1f1 SKV7TDk4oGbxEND3ssWRwJx120SV7gFCC6703WDFxoTNHBh5s36Q5Smj6mtaT1DXgXb1KLCTC QpwLSTP4D+bOQHF8onSwYHRMlmvi6jYJnH2F1enNF4AQ8Aba0KBhF2LN+FU9gA8I1a/hslxfC ooNSyeJEiF8cqcfwpAoslbOUzWXNg6U8gTInO4A/GdzI8kd+Gvlkdk/H5Bl2jK6+sJoM= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The tg3_set_eeprom() function correctly initializes the 'start' variable, but gcc generates a false warning: drivers/net/ethernet/broadcom/tg3.c: In function 'tg3_set_eeprom': drivers/net/ethernet/broadcom/tg3.c:12057:4: warning: 'start' may be used uninitialized in this function [-Wmaybe-uninitialized] I have not come up with a way to restructure the code in a way that avoids the warning without making it less readable, so this adds an initialization for the declaration to shut up that warning. Signed-off-by: Arnd Bergmann --- drivers/net/ethernet/broadcom/tg3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.0 diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 9293675df7ba..49eea8981332 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c @@ -12016,7 +12016,7 @@ static int tg3_set_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom, int ret; u32 offset, len, b_offset, odd_len; u8 *buf; - __be32 start, end; + __be32 start = 0, end; if (tg3_flag(tp, NO_NVRAM) || eeprom->magic != TG3_EEPROM_MAGIC)