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: 16 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

aab1ad11d69fa7f Seven Lee            2021-10-01  354  
aab1ad11d69fa7f Seven Lee            2021-10-01  355  static const struct 
snd_kcontrol_new nau8821_dmic_mode_switch =
aab1ad11d69fa7f Seven Lee            2021-10-01  356    
SOC_DAPM_SINGLE("Switch", NAU8821_R13_DMIC_CTRL,
aab1ad11d69fa7f Seven Lee            2021-10-01  357            
NAU8821_DMIC_EN_SFT, 1, 0);
aab1ad11d69fa7f Seven Lee            2021-10-01  358  
aab1ad11d69fa7f Seven Lee            2021-10-01  359  static int 
dmic_clock_control(struct snd_soc_dapm_widget *w,
aab1ad11d69fa7f Seven Lee            2021-10-01  360            struct 
snd_kcontrol *k, int  event)
aab1ad11d69fa7f Seven Lee            2021-10-01  361  {
aab1ad11d69fa7f Seven Lee            2021-10-01  362    struct 
snd_soc_component *component =
aab1ad11d69fa7f Seven Lee            2021-10-01  363            
snd_soc_dapm_to_component(w->dapm);
aab1ad11d69fa7f Seven Lee            2021-10-01  364    struct nau8821 *nau8821 
= snd_soc_component_get_drvdata(component);
aab1ad11d69fa7f Seven Lee            2021-10-01  365    int i, speed_selection 
= -1, clk_adc_src, clk_adc;
aab1ad11d69fa7f Seven Lee            2021-10-01  366    unsigned int 
clk_divider_r03;
aab1ad11d69fa7f Seven Lee            2021-10-01  367  
aab1ad11d69fa7f Seven Lee            2021-10-01  368    /* The DMIC clock is 
gotten from adc clock divided by
aab1ad11d69fa7f Seven Lee            2021-10-01  369     * CLK_DMIC_SRC (1, 2, 
4, 8). The clock has to be equal or
aab1ad11d69fa7f Seven Lee            2021-10-01  370     * less than 
nau8821->dmic_clk_threshold.
aab1ad11d69fa7f Seven Lee            2021-10-01  371     */
aab1ad11d69fa7f Seven Lee            2021-10-01  372    
regmap_read(nau8821->regmap, NAU8821_R03_CLK_DIVIDER,
aab1ad11d69fa7f Seven Lee            2021-10-01  373            
&clk_divider_r03);
aab1ad11d69fa7f Seven Lee            2021-10-01  374    clk_adc_src = 
(clk_divider_r03 & NAU8821_CLK_ADC_SRC_MASK)
aab1ad11d69fa7f Seven Lee            2021-10-01  375            >> 
NAU8821_CLK_ADC_SRC_SFT;
aab1ad11d69fa7f Seven Lee            2021-10-01  376    clk_adc = (nau8821->fs 
* 256) >> clk_adc_src;
aab1ad11d69fa7f Seven Lee            2021-10-01  377  
aab1ad11d69fa7f Seven Lee            2021-10-01  378    for (i = 0 ; i < 4 ; 
i++)
aab1ad11d69fa7f Seven Lee            2021-10-01  379            if ((clk_adc >> 
dmic_speed_sel[i].param) <=
aab1ad11d69fa7f Seven Lee            2021-10-01  380                    
nau8821->dmic_clk_threshold) {
aab1ad11d69fa7f Seven Lee            2021-10-01  381                    
speed_selection = dmic_speed_sel[i].val;
aab1ad11d69fa7f Seven Lee            2021-10-01  382                    break;
aab1ad11d69fa7f Seven Lee            2021-10-01  383            }
46ae0b3f554a323 Pierre-Louis Bossart 2021-10-25  384    if (i == 4)
aab1ad11d69fa7f Seven Lee            2021-10-01  385            return -EINVAL;
aab1ad11d69fa7f Seven Lee            2021-10-01  386  
aab1ad11d69fa7f Seven Lee            2021-10-01  387    dev_dbg(nau8821->dev,
aab1ad11d69fa7f Seven Lee            2021-10-01  388            "clk_adc=%d, 
dmic_clk_threshold = %d, param=%d, val = %d\n",
aab1ad11d69fa7f Seven Lee            2021-10-01  389            clk_adc, 
nau8821->dmic_clk_threshold,
aab1ad11d69fa7f Seven Lee            2021-10-01  390            
dmic_speed_sel[i].param, dmic_speed_sel[i].val);
aab1ad11d69fa7f Seven Lee            2021-10-01  391    
regmap_update_bits(nau8821->regmap, NAU8821_R13_DMIC_CTRL,
aab1ad11d69fa7f Seven Lee            2021-10-01  392            
NAU8821_DMIC_SRC_MASK,
aab1ad11d69fa7f Seven Lee            2021-10-01 @393            
(speed_selection << NAU8821_DMIC_SRC_SFT));
aab1ad11d69fa7f Seven Lee            2021-10-01  394  
aab1ad11d69fa7f Seven Lee            2021-10-01  395    return 0;
aab1ad11d69fa7f Seven Lee            2021-10-01  396  }
aab1ad11d69fa7f 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]

Reply via email to