[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201902080937.M1vOJ8vE%fengguang.wu@intel.com>
Date: Fri, 8 Feb 2019 09:26:55 +0800
From: kbuild test robot <lkp@...el.com>
To: Marek Szyprowski <m.szyprowski@...sung.com>
Cc: kbuild-all@...org, linux-kernel@...r.kernel.org,
linux-pm@...r.kernel.org,
Marek Szyprowski <m.szyprowski@...sung.com>,
linux-samsung-soc@...r.kernel.org,
Viresh Kumar <viresh.kumar@...aro.org>,
"Rafael J . Wysocki" <rjw@...ysocki.net>,
Nishanth Menon <nm@...com>, Stephen Boyd <sboyd@...nel.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Dave Gerlach <d-gerlach@...com>,
Wolfram Sang <wsa@...-dreams.de>
Subject: Re: [PATCH 2/2] cpufreq: dt: rework resources initialization
Hi Marek,
I love your patch! Perhaps something to improve:
[auto build test WARNING on pm/linux-next]
[also build test WARNING on next-20190207]
[cannot apply to v5.0-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Marek-Szyprowski/cpufreq-opp-rework-regulator-initialization/20190208-071454
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=8.2.0 make.cross ARCH=sh
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
drivers//cpufreq/cpufreq-dt.c: In function 'dt_cpufreq_probe':
>> drivers//cpufreq/cpufreq-dt.c:149:12: warning: 'cpu_reg' may be used uninitialized in this function [-Wmaybe-uninitialized]
priv->reg = cpu_reg;
~~~~~~~~~~^~~~~~~~~
drivers//cpufreq/cpufreq-dt.c:102:20: note: 'cpu_reg' was declared here
struct regulator *cpu_reg;
^~~~~~~
vim +/cpu_reg +149 drivers//cpufreq/cpufreq-dt.c
98
99 static int get_cpu_resources(struct private_data *priv, unsigned int cpu)
100 {
101 struct device *cpu_dev;
102 struct regulator *cpu_reg;
103 struct clk *cpu_clk;
104 int ret = 0;
105 const char *name;
106
107 cpu_dev = get_cpu_device(cpu);
108 if (!cpu_dev) {
109 pr_err("failed to get cpu%d device\n", cpu);
110 return -ENODEV;
111 }
112
113 cpu_clk = clk_get(cpu_dev, NULL);
114 ret = PTR_ERR_OR_ZERO(cpu_clk);
115 if (ret) {
116 /*
117 * If cpu's clk node is present, but clock is not yet
118 * registered, we should try defering probe.
119 */
120 if (ret == -EPROBE_DEFER)
121 dev_dbg(cpu_dev, "clock not ready, retry\n");
122 else
123 dev_err(cpu_dev, "failed to get clock: %d\n", ret);
124
125 return ret;
126 }
127
128 name = find_supply_name(cpu_dev);
129 /* Platform doesn't require regulator */
130 if (!name)
131 goto no_regulator;
132
133 cpu_reg = regulator_get_optional(cpu_dev, name);
134 ret = PTR_ERR_OR_ZERO(cpu_reg);
135 if (ret) {
136 /*
137 * If cpu's regulator supply node is present, but regulator is
138 * not yet registered, we should try defering probe.
139 */
140 if (ret == -EPROBE_DEFER)
141 dev_dbg(cpu_dev, "regulator not ready, retry\n");
142 else
143 dev_dbg(cpu_dev, "no regulator for cpu: %d\n", ret);
144 goto free;
145 }
146 no_regulator:
147 priv->cpu_dev = cpu_dev;
148 priv->clk = cpu_clk;
> 149 priv->reg = cpu_reg;
150 return 0;
151 free:
152 clk_put(cpu_clk);
153 return ret;
154 }
155
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Download attachment ".config.gz" of type "application/gzip" (50796 bytes)
Powered by blists - more mailing lists