CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Eugen Hristev <eugen.hris...@microchip.com> CC: Mauro Carvalho Chehab <mche...@kernel.org> CC: linux-me...@vger.kernel.org CC: Jacopo Mondi <jacopo+rene...@jmondi.org> CC: Hans Verkuil <hverk...@xs4all.nl>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 3e732ebf7316ac83e8562db7e64cc68aec390a18 commit: 118bf76a35bc2ed061cd1454fe5e57d1c7bcd8d0 media: atmel: atmel-isc: split the clock code into separate source file date: 2 months ago :::::: branch date: 2 days ago :::::: commit date: 2 months ago config: arm-randconfig-c002-20220407 (https://download.01.org/0day-ci/archive/20220407/202204072054.8oocmxhk-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 6b306233f78876a1d197ed6e1f05785505de7c63) 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 # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=118bf76a35bc2ed061cd1454fe5e57d1c7bcd8d0 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 118bf76a35bc2ed061cd1454fe5e57d1c7bcd8d0 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 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. drivers/iio/adc/ti-ads8688.c:64:8: warning: Excessive padding in 'struct ads8688_state' (44 padding bytes, where 12 is optimal). Optimal fields order: data, chip_info, spi, reg, vref_mv, lock, range, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct ads8688_state { ~~~~~~~^~~~~~~~~~~~~~~ drivers/iio/adc/ti-ads8688.c:64:8: note: Excessive padding in 'struct ads8688_state' (44 padding bytes, where 12 is optimal). Optimal fields order: data, chip_info, spi, reg, vref_mv, lock, range, consider reordering the fields or adding explicit padding members struct ads8688_state { ~~~~~~~^~~~~~~~~~~~~~~ Suppressed 1 warnings (1 with check filters). 1 warning generated. drivers/iio/adc/twl6030-gpadc.c:911:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = devm_request_threaded_irq(dev, irq, NULL, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/iio/adc/twl6030-gpadc.c:911:2: note: Value stored to 'ret' is never read ret = devm_request_threaded_irq(dev, irq, NULL, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 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. 2 warnings generated. Suppressed 2 warnings (1 in non-user code, 1 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. net/strparser/strparser.c:161:5: warning: Value stored to 'head' is never read [clang-analyzer-deadcode.DeadStores] head = skb; ^ ~~~ net/strparser/strparser.c:161:5: note: Value stored to 'head' is never read head = skb; ^ ~~~ Suppressed 2 warnings (1 in non-user code, 1 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. fs/ext4/page-io.c:325:11: warning: Value stored to 'bi_sector' during its initialization is never read [clang-analyzer-deadcode.DeadStores] sector_t bi_sector = bio->bi_iter.bi_sector; ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/page-io.c:325:11: note: Value stored to 'bi_sector' during its initialization is never read sector_t bi_sector = bio->bi_iter.bi_sector; ^~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ 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. 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. drivers/iio/proximity/vcnl3020.c:76:8: warning: Excessive padding in 'struct vcnl3020_data' (57 padding bytes, where 25 is optimal). Optimal fields order: buf, rev, regmap, dev, lock, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct vcnl3020_data { ~~~~~~~^~~~~~~~~~~~~~~ drivers/iio/proximity/vcnl3020.c:76:8: note: Excessive padding in 'struct vcnl3020_data' (57 padding bytes, where 25 is optimal). Optimal fields order: buf, rev, regmap, dev, lock, consider reordering the fields or adding explicit padding members struct vcnl3020_data { ~~~~~~~^~~~~~~~~~~~~~~ 5 warnings generated. Suppressed 5 warnings (1 in non-user code, 4 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. 4 warnings generated. Suppressed 4 warnings (4 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 3 warnings generated. net/unix/af_unix.c:1684:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] err = 0; ^ ~ net/unix/af_unix.c:1684:3: note: Value stored to 'err' is never read err = 0; ^ ~ net/unix/af_unix.c:2689:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] err = -EOPNOTSUPP; ^ ~~~~~~~~~~~ net/unix/af_unix.c:2689:3: note: Value stored to 'err' is never read err = -EOPNOTSUPP; ^ ~~~~~~~~~~~ Suppressed 1 warnings (1 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. 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 2 warnings generated. >> drivers/media/platform/atmel/atmel-isc-clk.c:125:18: warning: Value stored >> to 'isc_clk' during its initialization is never read >> [clang-analyzer-deadcode.DeadStores] struct isc_clk *isc_clk = to_isc_clk(hw); ^~~~~~~ drivers/media/platform/atmel/atmel-isc-clk.c:125:18: note: Value stored to 'isc_clk' during its initialization is never read struct isc_clk *isc_clk = to_isc_clk(hw); ^~~~~~~ Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 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. 1 warning generated. net/ieee802154/nl-mac.c:529:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores] rc = ops->set_mac_params(dev, ¶ms); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/ieee802154/nl-mac.c:529:2: note: Value stored to 'rc' is never read rc = ops->set_mac_params(dev, ¶ms); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated. Suppressed 1 warnings (1 with check filters). 3 warnings generated. net/ipv4/udp.c:742:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] err = 0; ^ ~ net/ipv4/udp.c:742:2: note: Value stored to 'err' is never read err = 0; ^ ~ Suppressed 2 warnings (1 in non-user code, 1 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. 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. drivers/iio/potentiometer/ad5272.c:49:8: warning: Excessive padding in 'struct ad5272_data' (58 padding bytes, where 26 is optimal). Optimal fields order: buf, client, cfg, lock, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] struct ad5272_data { ~~~~~~~^~~~~~~~~~~~~ drivers/iio/potentiometer/ad5272.c:49:8: note: Excessive padding in 'struct ad5272_data' (58 padding bytes, where 26 is optimal). Optimal fields order: buf, client, cfg, lock, consider reordering the fields or adding explicit padding members struct ad5272_data { ~~~~~~~^~~~~~~~~~~~~ 1 warning generated. Suppressed 1 warnings (1 with check filters). 4 warnings generated. net/ipv4/route.c:879:2: warning: Value stored to 'log_martians' is never read [clang-analyzer-deadcode.DeadStores] log_martians = IN_DEV_LOG_MARTIANS(in_dev); ^ net/ipv4/route.c:879:2: note: Value stored to 'log_martians' is never read Suppressed 3 warnings (1 in non-user code, 2 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. 1 warning generated. Suppressed 1 warnings (1 with check filters). 1 warning generated. Suppressed 1 warnings (1 with check filters). 2 warnings generated. net/ipv4/ip_fragment.c:619:3: warning: Argument to kfree() is the address of the global variable 'ip4_frags_ns_ctl_table', which is not memory allocated by malloc() [clang-analyzer-unix.Malloc] kfree(table); ^ net/ipv4/ip_fragment.c:657:6: note: Assuming 'res' is >= 0 if (res < 0) ^~~~~~~ net/ipv4/ip_fragment.c:657:2: note: Taking false branch if (res < 0) ^ net/ipv4/ip_fragment.c:684:8: note: Calling 'ip4_frags_ns_ctl_register' res = ip4_frags_ns_ctl_register(net); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/ip_fragment.c:597:6: note: Assuming the condition is false if (!net_eq(net, &init_net)) { ^~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/ip_fragment.c:597:2: note: Taking false branch if (!net_eq(net, &init_net)) { ^ net/ipv4/ip_fragment.c:611:6: note: Assuming 'hdr' is null if (!hdr) ^~~~ net/ipv4/ip_fragment.c:611:2: note: Taking true branch if (!hdr) ^ net/ipv4/ip_fragment.c:612:3: note: Control jumps to line 618 goto err_reg; ^ net/ipv4/ip_fragment.c:618:6: note: Assuming the condition is true if (!net_eq(net, &init_net)) ^~~~~~~~~~~~~~~~~~~~~~~ net/ipv4/ip_fragment.c:618:2: note: Taking true branch if (!net_eq(net, &init_net)) ^ net/ipv4/ip_fragment.c:619:3: note: Argument to kfree() is the address of the global variable 'ip4_frags_ns_ctl_table', which is not memory allocated by malloc() kfree(table); ^ ~~~~~ Suppressed 1 warnings (1 with check filters). 14 warnings generated. Suppressed 14 warnings (1 in non-user code, 13 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. vim +/isc_clk +125 drivers/media/platform/atmel/atmel-isc-clk.c 118bf76a35bc2e Eugen Hristev 2021-12-13 121 118bf76a35bc2e Eugen Hristev 2021-12-13 122 static int isc_clk_determine_rate(struct clk_hw *hw, 118bf76a35bc2e Eugen Hristev 2021-12-13 123 struct clk_rate_request *req) 118bf76a35bc2e Eugen Hristev 2021-12-13 124 { 118bf76a35bc2e Eugen Hristev 2021-12-13 @125 struct isc_clk *isc_clk = to_isc_clk(hw); 118bf76a35bc2e Eugen Hristev 2021-12-13 126 long best_rate = -EINVAL; 118bf76a35bc2e Eugen Hristev 2021-12-13 127 int best_diff = -1; 118bf76a35bc2e Eugen Hristev 2021-12-13 128 unsigned int i, div; 118bf76a35bc2e Eugen Hristev 2021-12-13 129 118bf76a35bc2e Eugen Hristev 2021-12-13 130 for (i = 0; i < clk_hw_get_num_parents(hw); i++) { 118bf76a35bc2e Eugen Hristev 2021-12-13 131 struct clk_hw *parent; 118bf76a35bc2e Eugen Hristev 2021-12-13 132 unsigned long parent_rate; 118bf76a35bc2e Eugen Hristev 2021-12-13 133 118bf76a35bc2e Eugen Hristev 2021-12-13 134 parent = clk_hw_get_parent_by_index(hw, i); 118bf76a35bc2e Eugen Hristev 2021-12-13 135 if (!parent) 118bf76a35bc2e Eugen Hristev 2021-12-13 136 continue; 118bf76a35bc2e Eugen Hristev 2021-12-13 137 118bf76a35bc2e Eugen Hristev 2021-12-13 138 parent_rate = clk_hw_get_rate(parent); 118bf76a35bc2e Eugen Hristev 2021-12-13 139 if (!parent_rate) 118bf76a35bc2e Eugen Hristev 2021-12-13 140 continue; 118bf76a35bc2e Eugen Hristev 2021-12-13 141 118bf76a35bc2e Eugen Hristev 2021-12-13 142 for (div = 1; div < ISC_CLK_MAX_DIV + 2; div++) { 118bf76a35bc2e Eugen Hristev 2021-12-13 143 unsigned long rate; 118bf76a35bc2e Eugen Hristev 2021-12-13 144 int diff; 118bf76a35bc2e Eugen Hristev 2021-12-13 145 118bf76a35bc2e Eugen Hristev 2021-12-13 146 rate = DIV_ROUND_CLOSEST(parent_rate, div); 118bf76a35bc2e Eugen Hristev 2021-12-13 147 diff = abs(req->rate - rate); 118bf76a35bc2e Eugen Hristev 2021-12-13 148 118bf76a35bc2e Eugen Hristev 2021-12-13 149 if (best_diff < 0 || best_diff > diff) { 118bf76a35bc2e Eugen Hristev 2021-12-13 150 best_rate = rate; 118bf76a35bc2e Eugen Hristev 2021-12-13 151 best_diff = diff; 118bf76a35bc2e Eugen Hristev 2021-12-13 152 req->best_parent_rate = parent_rate; 118bf76a35bc2e Eugen Hristev 2021-12-13 153 req->best_parent_hw = parent; 118bf76a35bc2e Eugen Hristev 2021-12-13 154 } 118bf76a35bc2e Eugen Hristev 2021-12-13 155 118bf76a35bc2e Eugen Hristev 2021-12-13 156 if (!best_diff || rate < req->rate) 118bf76a35bc2e Eugen Hristev 2021-12-13 157 break; 118bf76a35bc2e Eugen Hristev 2021-12-13 158 } 118bf76a35bc2e Eugen Hristev 2021-12-13 159 118bf76a35bc2e Eugen Hristev 2021-12-13 160 if (!best_diff) 118bf76a35bc2e Eugen Hristev 2021-12-13 161 break; 118bf76a35bc2e Eugen Hristev 2021-12-13 162 } 118bf76a35bc2e Eugen Hristev 2021-12-13 163 118bf76a35bc2e Eugen Hristev 2021-12-13 164 dev_dbg(isc_clk->dev, 118bf76a35bc2e Eugen Hristev 2021-12-13 165 "ISC CLK: %s, best_rate = %ld, parent clk: %s @ %ld\n", 118bf76a35bc2e Eugen Hristev 2021-12-13 166 __func__, best_rate, 118bf76a35bc2e Eugen Hristev 2021-12-13 167 __clk_get_name((req->best_parent_hw)->clk), 118bf76a35bc2e Eugen Hristev 2021-12-13 168 req->best_parent_rate); 118bf76a35bc2e Eugen Hristev 2021-12-13 169 118bf76a35bc2e Eugen Hristev 2021-12-13 170 if (best_rate < 0) 118bf76a35bc2e Eugen Hristev 2021-12-13 171 return best_rate; 118bf76a35bc2e Eugen Hristev 2021-12-13 172 118bf76a35bc2e Eugen Hristev 2021-12-13 173 req->rate = best_rate; 118bf76a35bc2e Eugen Hristev 2021-12-13 174 118bf76a35bc2e Eugen Hristev 2021-12-13 175 return 0; 118bf76a35bc2e Eugen Hristev 2021-12-13 176 } 118bf76a35bc2e Eugen Hristev 2021-12-13 177 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org