From patchwork Thu Mar 7 18:00:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Chancellor X-Patchwork-Id: 1053148 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Dsda7h2/"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Fdhy20G7z9s7h for ; Fri, 8 Mar 2019 05:00:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726506AbfCGSAp (ORCPT ); Thu, 7 Mar 2019 13:00:45 -0500 Received: from mail-ed1-f67.google.com ([209.85.208.67]:39870 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726412AbfCGSAp (ORCPT ); Thu, 7 Mar 2019 13:00:45 -0500 Received: by mail-ed1-f67.google.com with SMTP id p27so14235592edc.6; Thu, 07 Mar 2019 10:00:43 -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 :mime-version:content-transfer-encoding; bh=80PbBrlLVjNDnkbdPPlTlo4rmy0Dx+45IEhmeAmWXDY=; b=Dsda7h2/CPiv7QuZI5alniBrtiXASBhNWAvKcJvTkeDUq9ApCSvAdQbyhj/LIoYcDH NGyX6Gn4IXl3liA9NaqG1zkN0QFtYkR+bswL6k+j6647CxuxS2Dy9b6AE3S349y7u0ej xr3FTpBYZy+d3yF2U5xa5xNHL16RikYISVh6taIKX3dmxVJzOkGQPUNZORNOfM2pvyEy bYefUPqdXllbr1xATwi1hYFO+q9GBAMkgCgnwWh1ZzqSzUc8CeAXb8mc4wz4qM5rSlRA THFAoDURYJ7A0PeYCIsx0sj4NEUeadvaUnO2i0pIes6Z5V0xfuK6UDQw2M4B618DrEEd 5b0w== 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:mime-version:content-transfer-encoding; bh=80PbBrlLVjNDnkbdPPlTlo4rmy0Dx+45IEhmeAmWXDY=; b=eZNtGtB8IoQvoHOl9A9h+hK/bdCnH+VxtYdcwqEpsHgXstY8wQpOkGp/Wxb+V8T4DU g8jtzzaw62b0McCMl0ciRyZROt9arUDZ/Z3+vYB934HlZ4YQo+AriV3pEzfDhp0rjPmO WfLtjHC17gC/2OWrifPwepl0kUfip3gRReR/Va2ViagD6j4P8xSEmGcR2U9THA9Ugf1L fJnFJmgDVnesW8uCkaNcIaPG24BDEaU0evTCoQ7F7oRnXqufT+syLlWw1bwF60V52PHu YFuSqwUCONaopJLjCgHJ6gerIc9QZSwCSCteT5/PvxBc/SZUrb6Vj534iCHwAQINVTW4 LOuQ== X-Gm-Message-State: APjAAAV3LIXhwKqt9w/Jds5hAr9+Z+ihkHbo3AT/gcbevrq8cdRnC0pX 6iYdofKZwklGSgBTgjrFHZE= X-Google-Smtp-Source: APXvYqzbxwDlNucMfu962ZRy3qrgQay23arYXt0G41hpmzMBTCKJoQi9biOatWyIGBRCQr/WQkJJ1w== X-Received: by 2002:a17:906:70d6:: with SMTP id g22mr8806152ejk.215.1551981642787; Thu, 07 Mar 2019 10:00:42 -0800 (PST) Received: from localhost.localdomain ([2a01:4f9:2a:1fae::2]) by smtp.gmail.com with ESMTPSA id y21sm1501108edb.54.2019.03.07.10.00.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Mar 2019 10:00:42 -0800 (PST) From: Nathan Chancellor To: Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu , "David S. Miller" Cc: Maxime Coquelin , netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Nathan Chancellor , Nick Desaulniers Subject: [PATCH v2] net: stmmac: Avoid sometimes uninitialized Clang warnings Date: Thu, 7 Mar 2019 11:00:28 -0700 Message-Id: <20190307180027.6226-1-natechancellor@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190307162101.29204-1-natechancellor@gmail.com> References: <20190307162101.29204-1-natechancellor@gmail.com> MIME-Version: 1.0 X-Patchwork-Bot: notify Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When building with -Wsometimes-uninitialized, Clang warns: drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:495:3: warning: variable 'ns' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:495:3: warning: variable 'ns' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:532:3: warning: variable 'ns' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:532:3: warning: variable 'ns' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:741:3: warning: variable 'sec_inc' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] drivers/net/ethernet/stmicro/stmmac/stmmac_main.c:741:3: warning: variable 'sec_inc' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] Clang is concerned with the use of stmmac_do_void_callback (which stmmac_get_timestamp and stmmac_config_sub_second_increment wrap), as it may fail to initialize these values if the if condition was ever false (meaning the callbacks don't exist). It's not wrong because the callbacks (get_timestamp and config_sub_second_increment respectively) are the ones that initialize the variables. While it's unlikely that the callbacks are ever going to disappear and make that condition false, we can easily avoid this warning by zero initialize the variables. Link: https://github.com/ClangBuiltLinux/linux/issues/384 Suggested-by: Nick Desaulniers Reviewed-by: Nick Desaulniers Signed-off-by: Nathan Chancellor --- v1 -> v2: * Respect reverse Christmas tree variable ordering in stmmac_hwtstamp_set. drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index e2a13ec2e30b..97c5e1aad88f 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -480,7 +480,7 @@ static void stmmac_get_tx_hwtstamp(struct stmmac_priv *priv, struct dma_desc *p, struct sk_buff *skb) { struct skb_shared_hwtstamps shhwtstamp; - u64 ns; + u64 ns = 0; if (!priv->hwts_tx_en) return; @@ -519,7 +519,7 @@ static void stmmac_get_rx_hwtstamp(struct stmmac_priv *priv, struct dma_desc *p, { struct skb_shared_hwtstamps *shhwtstamp = NULL; struct dma_desc *desc = p; - u64 ns; + u64 ns = 0; if (!priv->hwts_rx_en) return; @@ -564,8 +564,8 @@ static int stmmac_hwtstamp_set(struct net_device *dev, struct ifreq *ifr) u32 snap_type_sel = 0; u32 ts_master_en = 0; u32 ts_event_en = 0; + u32 sec_inc = 0; u32 value = 0; - u32 sec_inc; bool xmac; xmac = priv->plat->has_gmac4 || priv->plat->has_xgmac;