From patchwork Thu Sep 15 15:38:38 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 101785 Delivered-To: patch@linaro.org Received: by 10.140.106.72 with SMTP id d66csp18484qgf; Thu, 15 Sep 2016 08:39:46 -0700 (PDT) X-Received: by 10.66.67.51 with SMTP id k19mr15396123pat.55.1473953986283; Thu, 15 Sep 2016 08:39:46 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l7si4715173pan.265.2016.09.15.08.39.46; Thu, 15 Sep 2016 08:39:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-pm-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-pm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-pm-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751241AbcIOPjo (ORCPT + 14 others); Thu, 15 Sep 2016 11:39:44 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:62200 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751036AbcIOPjo (ORCPT ); Thu, 15 Sep 2016 11:39:44 -0400 Received: from wuerfel.lan. ([78.43.20.153]) by mrelayeu.kundenserver.de (mreue003) with ESMTPA (Nemesis) id 0LfFYi-1bDU3Q3qKe-00op3K; Thu, 15 Sep 2016 17:39:25 +0200 From: Arnd Bergmann To: Viresh Kumar , Nishanth Menon , Stephen Boyd Cc: Arnd Bergmann , "Rafael J. Wysocki" , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] PM / OPP: avoid maybe-uninitialized warning Date: Thu, 15 Sep 2016 17:38:38 +0200 Message-Id: <20160915153917.3001855-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:nasdWJCgJe+ZWs8OM5lnYar++y4Wqlf2UIAk4cV09l43AQ/JWZ4 xnnn0bkOCz7vvgZFFS9CMPd6q2Njlb0pZig9t/5WKJy3eHUSqP3cIXyugpj0rCDWktXWSYw 5E6URw9HJ2heBKL37ytPeRt925wy1Vu9AYZUxn1A96BdWpMFvoufZTyB07PzNcMVSM81Zrr DWcpp/pzjnY+M4aOLHaCg== X-UI-Out-Filterresults: notjunk:1; V01:K0:Md1ii3gn9bg=:bDf4hWcu6wSH4AnLwDYiwY za9sZWRnl3XmO48Idi9GWRNnlU7tGO7WJBgpE3NnR9asAX/IkeShLjRDqrLHfBDOUDPeQWPqW gZgZ5cuumdYEe81Cu0SQEF819XXhDDM93Mfbofh8gyQYh0uYMxvPwFDdQRxLiduC4/yQZangq 6SdoV7R1DQt9+UYbegoYaUvshVqcz6/Et1cxEtVOkp1+akw4THRv1L3WDF4BusAoYlKl7I80q koaXOh9VVVU+8Qv8HZBMW3gXTPJgGW3Y3/CMqhOXpPVAxut01nigE9UDxZ+nh20iq2+kTsgmT +rJwZyqbIROUJTCNaLLgy4nssny5WrWAfA6sYbukanxlU9WzU3NXX3cDlCo/lHEZpw4m/b0GA smjdHQSQDdnDkNjWMkELPipYIweuRsx1/5JiSi8SaGo7dGVg8GmlvqJms/bn52Uv7ZIIIHcye j4uHFksaiaxmJGrRyi5e944nVFIF+sgiDMdENvDEBvzE7yLZb0YRIALbsa17sSpXcBycSlUGF 0BoN5J35Rkamopr1U8op5IMloH9TT4wj+HPiQcEXZf9K4vNSdsugzGKaZeok+YnMXXRZy1gtz JDUsD0BzBKLmPlwXWyUQ54AWW1pdaR2nhjLlTUhxr5QyaoY5//a2C7nrefdR73PqxWKtXdvO0 uTvpcSnQpLUq5FUxYSzp+q/dNQ0M21XyUDgn95Fz2DusHv6XlnP3XiBZXX60dPvZiAYM= Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org When CONFIG_OPTIMIZE_INLINING is set and we are building with -Wmaybe-uninitialized enabled, we can get a warning for the opp core driver: drivers/base/power/opp/core.c: In function 'dev_pm_opp_set_rate': drivers/base/power/opp/core.c:560:8: warning: 'ou_volt_min' may be used uninitialized in this function [-Wmaybe-uninitialized] This has only now appeared as a result of commit 797da5598f3a ("PM / devfreq: Add COMPILE_TEST for build coverage"), which makes the driver visible in some configurations that didn't have it before. The warning is a false positive that I got with gcc-6.1.1, but there is a simple workaround in removing the local variables that we get warnings for (all three are affected depending on the configuration). This also makes the code easier to read. Signed-off-by: Arnd Bergmann --- drivers/base/power/opp/core.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) -- 2.9.0 -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/base/power/opp/core.c b/drivers/base/power/opp/core.c index df0c70963d9e..4c7c6da7a989 100644 --- a/drivers/base/power/opp/core.c +++ b/drivers/base/power/opp/core.c @@ -584,7 +584,6 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) struct clk *clk; unsigned long freq, old_freq; unsigned long u_volt, u_volt_min, u_volt_max; - unsigned long ou_volt, ou_volt_min, ou_volt_max; int ret; if (unlikely(!target_freq)) { @@ -620,11 +619,7 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) } old_opp = _find_freq_ceil(opp_table, &old_freq); - if (!IS_ERR(old_opp)) { - ou_volt = old_opp->u_volt; - ou_volt_min = old_opp->u_volt_min; - ou_volt_max = old_opp->u_volt_max; - } else { + if (IS_ERR(old_opp)) { dev_err(dev, "%s: failed to find current OPP for freq %lu (%ld)\n", __func__, old_freq, PTR_ERR(old_opp)); } @@ -683,7 +678,8 @@ int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq) restore_voltage: /* This shouldn't harm even if the voltages weren't updated earlier */ if (!IS_ERR(old_opp)) - _set_opp_voltage(dev, reg, ou_volt, ou_volt_min, ou_volt_max); + _set_opp_voltage(dev, reg, old_opp->u_volt, + old_opp->u_volt_min, old_opp->u_volt_max); return ret; }