CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Sudeep Holla <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git 
v5.15/pcc_type3
head:   db918d7c13901646937da28423737c14528b9379
commit: 6eca3b7aff77252d2cf75ebc9c97697413e3500f [11/14] mailbox: pcc: Drop 
handling invalid bit-width in {read,write}_register
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-c001-20211021 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
3cea2505fd8d99a9ba0cb625aecfe28a47c4e3f8)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git/commit/?id=6eca3b7aff77252d2cf75ebc9c97697413e3500f
        git remote add sudeep-holla 
https://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git
        git fetch --no-tags sudeep-holla v5.15/pcc_type3
        git checkout 6eca3b7aff77252d2cf75ebc9c97697413e3500f
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   6 warnings generated.
   drivers/clk/clk-si5341.c:691:2: warning: Value stored to 'err' is never read 
[clang-analyzer-deadcode.DeadStores]
           err = si5341_encode_44_32(synth->data->regmap,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/clk-si5341.c:691:2: note: Value stored to 'err' is never read
           err = si5341_encode_44_32(synth->data->regmap,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/clk-si5341.c:854:23: warning: Division by zero 
[clang-analyzer-core.DivideZero]
                   rate = *parent_rate / (r << 1);
                          ~~~~~~~~~~~~~^~~~~~~~~~
   drivers/clk/clk-si5341.c:833:6: note: Assuming 'rate' is not equal to 0
           if (!rate)
               ^~~~~
   drivers/clk/clk-si5341.c:833:2: note: Taking false branch
           if (!rate)
           ^
   drivers/clk/clk-si5341.c:839:6: note: Assuming 'r' is 0
           if (r && !(r % rate))
               ^
   drivers/clk/clk-si5341.c:839:8: note: Left side of '&&' is false
           if (r && !(r % rate))
                 ^
   drivers/clk/clk-si5341.c:842:6: note: Assuming the condition is false
           if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/clk-si5341.c:842:2: note: Taking false branch
           if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) {
           ^
   drivers/clk/clk-si5341.c:854:23: note: Division by zero
                   rate = *parent_rate / (r << 1);
                          ~~~~~~~~~~~~~^~~~~~~~~~
   drivers/clk/clk-si5341.c:893:2: warning: Value stored to 'err' is never read 
[clang-analyzer-deadcode.DeadStores]
           err = regmap_bulk_write(output->data->regmap,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/clk/clk-si5341.c:893:2: note: Value stored to 'err' is never read
           err = regmap_bulk_write(output->data->regmap,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
>> drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound 
>> assignment is an uninitialized value. The computed value will also be 
>> garbage [clang-analyzer-core.uninitialized.Assign]
           val &= reg->preserve_mask;
               ^
   drivers/mailbox/pcc.c:345:9: note: Calling 'pcc_chan_reg_read_modify_write'
           return pcc_chan_reg_read_modify_write(&pchan->db);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mailbox/pcc.c:184:2: note: 'val' declared without an initial value
           u64 val;
           ^~~~~~~
   drivers/mailbox/pcc.c:186:8: note: Calling 'pcc_chan_reg_read'
           ret = pcc_chan_reg_read(reg, &val);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mailbox/pcc.c:153:6: note: Assuming field 'gas' is non-null, which 
participates in a condition later
           if (!reg->gas) {
               ^~~~~~~~~
   drivers/mailbox/pcc.c:153:2: note: Taking false branch
           if (!reg->gas) {
           ^
   drivers/mailbox/pcc.c:158:6: note: Assuming field 'vaddr' is non-null
           if (reg->vaddr)
               ^~~~~~~~~~
   drivers/mailbox/pcc.c:158:2: note: Taking true branch
           if (reg->vaddr)
           ^
   drivers/mailbox/pcc.c:159:3: note: Calling 'read_register'
                   read_register(reg->vaddr, val, reg->gas->bit_width);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mailbox/pcc.c:115:2: note: 'Default' branch taken. Execution 
continues on line 115
           switch (bit_width) {
           ^
   drivers/mailbox/pcc.c:129:1: note: Returning without writing to '*val'
   }
   ^
   drivers/mailbox/pcc.c:159:3: note: Returning from 'read_register'
                   read_register(reg->vaddr, val, reg->gas->bit_width);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mailbox/pcc.c:163:2: note: Returning without writing to '*val'
           return ret;
           ^
   drivers/mailbox/pcc.c:163:2: note: Returning zero (loaded from 'ret'), which 
participates in a condition later
           return ret;
           ^~~~~~~~~~
   drivers/mailbox/pcc.c:186:8: note: Returning from 'pcc_chan_reg_read'
           ret = pcc_chan_reg_read(reg, &val);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mailbox/pcc.c:187:6: note: 'ret' is 0
           if (ret)
               ^~~
   drivers/mailbox/pcc.c:187:2: note: Taking false branch
           if (ret)
           ^
   drivers/mailbox/pcc.c:190:6: note: The left expression of the compound 
assignment is an uninitialized value. The computed value will also be garbage
           val &= reg->preserve_mask;
           ~~~ ^
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   drivers/usb/misc/uss720.c:690:2: warning: Value stored to 'i' is never read 
[clang-analyzer-deadcode.DeadStores]
           i = usb_set_interface(usbdev, 
intf->altsetting->desc.bInterfaceNumber, 2);
           ^   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/misc/uss720.c:690:2: note: Value stored to 'i' is never read
           i = usb_set_interface(usbdev, 
intf->altsetting->desc.bInterfaceNumber, 2);
           ^   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   12 warnings generated.
   Suppressed 12 warnings (3 in non-user code, 9 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
   Suppressed 3 warnings (3 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   5 warnings generated.
   drivers/usb/early/ehci-dbgp.c:244:18: warning: The left operand of '<<' is a 
garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   lo |= bytes[i] << (8*i);
                                  ^
   drivers/usb/early/ehci-dbgp.c:916:6: note: Assuming 'ehci_debug' is non-null
           if (!ehci_debug || dbgp_not_safe)
               ^~~~~~~~~~~
   drivers/usb/early/ehci-dbgp.c:916:6: note: Left side of '||' is false
   drivers/usb/early/ehci-dbgp.c:916:21: note: Assuming 'dbgp_not_safe' is 0
           if (!ehci_debug || dbgp_not_safe)
                              ^~~~~~~~~~~~~
   drivers/usb/early/ehci-dbgp.c:916:2: note: Taking false branch
           if (!ehci_debug || dbgp_not_safe)
           ^
   drivers/usb/early/ehci-dbgp.c:920:15: note: Assuming the condition is true

vim +190 drivers/mailbox/pcc.c

3cae27675219cd Sudeep Holla 2021-07-08  180  
3cae27675219cd Sudeep Holla 2021-07-08  181  static int 
pcc_chan_reg_read_modify_write(struct pcc_chan_reg *reg)
3cae27675219cd Sudeep Holla 2021-07-08  182  {
3cae27675219cd Sudeep Holla 2021-07-08  183     int ret = 0;
3cae27675219cd Sudeep Holla 2021-07-08  184     u64 val;
3cae27675219cd Sudeep Holla 2021-07-08  185  
3cae27675219cd Sudeep Holla 2021-07-08  186     ret = pcc_chan_reg_read(reg, 
&val);
3cae27675219cd Sudeep Holla 2021-07-08  187     if (ret)
3cae27675219cd Sudeep Holla 2021-07-08  188             return ret;
3cae27675219cd Sudeep Holla 2021-07-08  189  
3cae27675219cd Sudeep Holla 2021-07-08 @190     val &= reg->preserve_mask;
3cae27675219cd Sudeep Holla 2021-07-08  191     val |= reg->set_mask;
3cae27675219cd Sudeep Holla 2021-07-08  192  
3cae27675219cd Sudeep Holla 2021-07-08  193     return pcc_chan_reg_write(reg, 
val);
3cae27675219cd Sudeep Holla 2021-07-08  194  }
3cae27675219cd Sudeep Holla 2021-07-08  195  

:::::: The code at line 190 was first introduced by commit
:::::: 3cae27675219cd587c6a31a63719110c1307fa3a mailbox: pcc: Add PCC register 
bundle and associated accessor functions

:::::: TO: Sudeep Holla <[email protected]>
:::::: CC: Sudeep Holla <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to