CC: [email protected] BCC: [email protected] CC: [email protected] TO: "Pierre-Louis Bossart" <[email protected]> CC: Mark Brown <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 7e57714cd0ad2d5bb90e50b5096a0e671dec1ef3 commit: 46ae0b3f554a323322a770c0edee50aa8019a655 ASoC: nau8821: clarify out-of-bounds check date: 4 months ago :::::: branch date: 10 hours ago :::::: commit date: 4 months ago compiler: nios2-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> sound/soc/codecs/nau8821.c:393:20: warning: Shifting a negative value is >> technically undefined behaviour [shiftNegativeLHS] (speed_selection << NAU8821_DMIC_SRC_SFT)); ^ vim +393 sound/soc/codecs/nau8821.c aab1ad11d69fa7 Seven Lee 2021-10-01 354 aab1ad11d69fa7 Seven Lee 2021-10-01 355 static const struct snd_kcontrol_new nau8821_dmic_mode_switch = aab1ad11d69fa7 Seven Lee 2021-10-01 356 SOC_DAPM_SINGLE("Switch", NAU8821_R13_DMIC_CTRL, aab1ad11d69fa7 Seven Lee 2021-10-01 357 NAU8821_DMIC_EN_SFT, 1, 0); aab1ad11d69fa7 Seven Lee 2021-10-01 358 aab1ad11d69fa7 Seven Lee 2021-10-01 359 static int dmic_clock_control(struct snd_soc_dapm_widget *w, aab1ad11d69fa7 Seven Lee 2021-10-01 360 struct snd_kcontrol *k, int event) aab1ad11d69fa7 Seven Lee 2021-10-01 361 { aab1ad11d69fa7 Seven Lee 2021-10-01 362 struct snd_soc_component *component = aab1ad11d69fa7 Seven Lee 2021-10-01 363 snd_soc_dapm_to_component(w->dapm); aab1ad11d69fa7 Seven Lee 2021-10-01 364 struct nau8821 *nau8821 = snd_soc_component_get_drvdata(component); aab1ad11d69fa7 Seven Lee 2021-10-01 365 int i, speed_selection = -1, clk_adc_src, clk_adc; aab1ad11d69fa7 Seven Lee 2021-10-01 366 unsigned int clk_divider_r03; aab1ad11d69fa7 Seven Lee 2021-10-01 367 aab1ad11d69fa7 Seven Lee 2021-10-01 368 /* The DMIC clock is gotten from adc clock divided by aab1ad11d69fa7 Seven Lee 2021-10-01 369 * CLK_DMIC_SRC (1, 2, 4, 8). The clock has to be equal or aab1ad11d69fa7 Seven Lee 2021-10-01 370 * less than nau8821->dmic_clk_threshold. aab1ad11d69fa7 Seven Lee 2021-10-01 371 */ aab1ad11d69fa7 Seven Lee 2021-10-01 372 regmap_read(nau8821->regmap, NAU8821_R03_CLK_DIVIDER, aab1ad11d69fa7 Seven Lee 2021-10-01 373 &clk_divider_r03); aab1ad11d69fa7 Seven Lee 2021-10-01 374 clk_adc_src = (clk_divider_r03 & NAU8821_CLK_ADC_SRC_MASK) aab1ad11d69fa7 Seven Lee 2021-10-01 375 >> NAU8821_CLK_ADC_SRC_SFT; aab1ad11d69fa7 Seven Lee 2021-10-01 376 clk_adc = (nau8821->fs * 256) >> clk_adc_src; aab1ad11d69fa7 Seven Lee 2021-10-01 377 aab1ad11d69fa7 Seven Lee 2021-10-01 378 for (i = 0 ; i < 4 ; i++) aab1ad11d69fa7 Seven Lee 2021-10-01 379 if ((clk_adc >> dmic_speed_sel[i].param) <= aab1ad11d69fa7 Seven Lee 2021-10-01 380 nau8821->dmic_clk_threshold) { aab1ad11d69fa7 Seven Lee 2021-10-01 381 speed_selection = dmic_speed_sel[i].val; aab1ad11d69fa7 Seven Lee 2021-10-01 382 break; aab1ad11d69fa7 Seven Lee 2021-10-01 383 } 46ae0b3f554a32 Pierre-Louis Bossart 2021-10-25 384 if (i == 4) aab1ad11d69fa7 Seven Lee 2021-10-01 385 return -EINVAL; aab1ad11d69fa7 Seven Lee 2021-10-01 386 aab1ad11d69fa7 Seven Lee 2021-10-01 387 dev_dbg(nau8821->dev, aab1ad11d69fa7 Seven Lee 2021-10-01 388 "clk_adc=%d, dmic_clk_threshold = %d, param=%d, val = %d\n", aab1ad11d69fa7 Seven Lee 2021-10-01 389 clk_adc, nau8821->dmic_clk_threshold, aab1ad11d69fa7 Seven Lee 2021-10-01 390 dmic_speed_sel[i].param, dmic_speed_sel[i].val); aab1ad11d69fa7 Seven Lee 2021-10-01 391 regmap_update_bits(nau8821->regmap, NAU8821_R13_DMIC_CTRL, aab1ad11d69fa7 Seven Lee 2021-10-01 392 NAU8821_DMIC_SRC_MASK, aab1ad11d69fa7 Seven Lee 2021-10-01 @393 (speed_selection << NAU8821_DMIC_SRC_SFT)); aab1ad11d69fa7 Seven Lee 2021-10-01 394 aab1ad11d69fa7 Seven Lee 2021-10-01 395 return 0; aab1ad11d69fa7 Seven Lee 2021-10-01 396 } aab1ad11d69fa7 Seven Lee 2021-10-01 397 :::::: The code at line 393 was first introduced by commit :::::: aab1ad11d69fa7f35cb88105614ea7911598e1d6 ASoC: nau8821: new driver :::::: TO: Seven Lee <[email protected]> :::::: CC: Mark Brown <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
