Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1607573

[PATCH 1/3] net: hns: avoid gcc-7.0.1 warning for uninitialized data

Path csiph.com!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod
From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject [PATCH 1/3] net: hns: avoid gcc-7.0.1 warning for uninitialized data
Date Thu, 23 Mar 2017 16:00:02 +0100
Message-ID <tocnv-3Ak-3@gated-at.bofh.it> (permalink)
X-Original-To Yisen Zhuang <yisen.zhuang@huawei.com>, Salil Mehta <salil.mehta@huawei.com>, "David S. Miller" <davem@davemloft.net>
X-Mailer git-send-email 2.9.0
X-Provags-ID V03:K0:VUSWNyipvQKZZwZFvraNnrguOYIAy19MiTbOTdZri9UfXZLRyge TLOkfghT9xfgYvJdbMs+ICImhoUBofOZfRwUBF9wqEo5N8sSNN5xf8NgJGirsQes2dtanCm MVWLThzKoI6/QfoEYA2MObaCzt19qJGrMgVyYE/jWazRPPGBznisJlgHrdAl1VEbRxfWfZS cTPN9lhXHRbz/eI+hi8yQ==
X-Ui-Out-Filterresults notjunk:1;V01:K0:1/pxyPx7Jqk=:j+vXk5M3RW7u1MeEDb+56U UmBfpGeExOVcEx4g00ZKtxhDUlCwPnlI4SzqiWxyCp47nyAkTEC5KlEe7eJCBao2ALpIkZV7w fOD4+01HpSQrGl+Q8T42249jzwC+5834v00Tcr+fvVM9SQobAuzpkGsyvHk/dbi3U6FrUpZBI 7PZ6hVskGNdtwN9CqSDj04CDs+POj7P8oFuHQFIFSxqjcqlbjGhU+He5bhcyz5lpnUnW+JWSv ++2uOb134ZAfp/RwQ3jC3WrMgVcjkgBMarEBZs8iUYRPUgufuleZNWzhBCkY4dgJewrnbhWk4 xZZxZJ+luhxpYbOzDKVAq+N91HapdYCAXkk4TEMHm4zDnIjDE/ZvtZfcNSF/aTucfTWIy/JLs DtMq9VZFTtJpioz1Nio8FpdgNiKDeKq00f7rJlQ9fDkptMmHad7odxwELSjkdObWPFxJGNMlY pyjsujxxO5tPVRruGqGtOq23XlpNRhGd21eB/KhFNju6fWo8nJeedTGef4CGUTXQava46ug9z xuom9fOZktMNA1vFem2Zq4EECYzP6VlauFIj0MgFlHEJ1nvpwWX2A0i1CW7XFY5LcbOhCNRrO QAmbVwlU1SPdLDdcr5cZ7pv1YteqfxLKi61/duIazF4sW3RkxKAqzb1h+eBaB9mcAy+Ph6KXT 7ypXoSWDjMunOAOzrl5utaM6OeZTINFVfHsLBGAc1uF0UcwOzsGGmOzEQJWnQMOt8dkU=
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 50
Organization linux.* mail to news gateway
X-Original-Cc Arnd Bergmann <arnd@arndb.de>, Daode Huang <huangdaode@hisilicon.com>, Qianqian Xie <xieqianqian@huawei.com>, Kejian Yan <yankejian@huawei.com>, Wei Yongjun <weiyongjun1@huawei.com>, oulijun <oulijun@huawei.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org
X-Original-Date Thu, 23 Mar 2017 15:55:50 +0100
X-Original-Message-ID <20170323145610.54695-1-arnd@arndb.de>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1607573

Show key headers only | View raw


hns_dsaf_set_mac_key() calls dsaf_set_field() on an uninitialized field,
which will then change only a few of its bits, causing a warning with
the latest gcc:

hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_set_mac_uc_entry':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   (origin) &= (~(mask)); \
            ^~
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_set_mac_mc_entry':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_add_mac_mc_port':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_del_mac_entry':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_rm_mac_addr':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_del_mac_mc_port':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_get_mac_uc_entry':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]
hisilicon/hns/hns_dsaf_main.c: In function 'hns_dsaf_get_mac_mc_entry':
hisilicon/hns/hns_dsaf_reg.h:1046:12: error: 'mac_key.low.bits.port_vlan' may be used uninitialized in this function [-Werror=maybe-uninitialized]

The code is actually correct since we always set all 16 bits of the
port_vlan field, but gcc correctly points out that the first
access does contain uninitialized data.

This initializes the field to zero first before setting the
individual bits.

Fixes: 5483bfcb169c ("net: hns: modify tcam table and set mac key")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
index 90dbda792614..1ec6d4bb6044 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c
@@ -1519,6 +1519,7 @@ static void hns_dsaf_set_mac_key(
 	mac_key->high.bits.mac_3 = addr[3];
 	mac_key->low.bits.mac_4 = addr[4];
 	mac_key->low.bits.mac_5 = addr[5];
+	mac_key->low.bits.port_vlan = 0;
 	dsaf_set_field(mac_key->low.bits.port_vlan, DSAF_TBL_TCAM_KEY_VLAN_M,
 		       DSAF_TBL_TCAM_KEY_VLAN_S, vlan_id);
 	dsaf_set_field(mac_key->low.bits.port_vlan, DSAF_TBL_TCAM_KEY_PORT_M,
-- 
2.9.0

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH 1/3] net: hns: avoid gcc-7.0.1 warning for uninitialized data Arnd Bergmann <arnd@arndb.de> - 2017-03-23 16:00 +0100
  Re: [PATCH 1/3] net: hns: avoid gcc-7.0.1 warning for  uninitialized data David Miller <davem@davemloft.net> - 2017-03-23 20:00 +0100

csiph-web