tree:
https://android.googlesource.com/kernel/goldfish android-3.18
head: 44cdfba60e00fb12583fb922a00288fd5a82df33
commit: 3c3c91051ddc495cffb0dc12ccd997e3e0eef172 [512/586] clk: qcom: rcg2: Don't
crash if our parent can't be found; return an error
config: x86_64-randconfig-m001-20210315 (attached as .config)
compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
New smatch warnings:
drivers/clk/qcom/clk-rcg2.c:188 _freq_tbl_determine_rate() warn: variable dereferenced
before check 'p' (see line 187)
Old smatch warnings:
drivers/clk/qcom/clk-rcg2.c:81 clk_rcg2_get_parent() warn: signedness bug returning
'(-22)'
vim +/p +188 drivers/clk/qcom/clk-rcg2.c
175
176 static long _freq_tbl_determine_rate(struct clk_hw *hw,
177 const struct freq_tbl *f, unsigned long rate,
178 unsigned long *p_rate, struct clk **p)
179 {
180 unsigned long clk_flags;
181
182 f = qcom_find_freq(f, rate);
183 if (!f)
184 return -EINVAL;
185
186 clk_flags = __clk_get_flags(hw->clk);
187 *p = clk_get_parent_by_index(hw->clk, f->src);
188 if (!p)
189 return -EINVAL;
190
191 if (clk_flags & CLK_SET_RATE_PARENT) {
192 if (f->pre_div) {
193 rate /= 2;
194 rate *= f->pre_div + 1;
195 }
196
197 if (f->n) {
198 u64 tmp = rate;
199 tmp = tmp * f->n;
200 do_div(tmp, f->m);
201 rate = tmp;
202 }
203 } else {
204 rate = __clk_get_rate(*p);
205 }
206 *p_rate = rate;
207
208 return f->freq;
209 }
210
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org