CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Eugen Hristev <[email protected]>
CC: Mauro Carvalho Chehab <[email protected]>
CC: [email protected]
CC: Jacopo Mondi <[email protected]>
CC: Hans Verkuil <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   8013d1d3d2e33236dee13a133fba49ad55045e79
commit: 118bf76a35bc2ed061cd1454fe5e57d1c7bcd8d0 media: atmel: atmel-isc: split 
the clock code into separate source file
date:   3 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 3 months ago
config: arm-randconfig-c002-20220427 
(https://download.01.org/0day-ci/archive/20220430/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
1cddcfdc3c683b393df1a5c9063252eb60e52818)
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
        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 <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
           if (lpuart_is_32(sport))
           ^
   drivers/tty/serial/fsl_lpuart.c:2876:6: note: Assuming field 
'lpuart_dma_rx_use' is true
           if (sport->lpuart_dma_rx_use) {
               ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/tty/serial/fsl_lpuart.c:2876:2: note: Taking true branch
           if (sport->lpuart_dma_rx_use) {
           ^
   drivers/tty/serial/fsl_lpuart.c:2877:7: note: Assuming 'irq_wake' is true
                   if (irq_wake) {
                       ^~~~~~~~
   drivers/tty/serial/fsl_lpuart.c:2877:3: note: Taking true branch
                   if (irq_wake) {
                   ^
   drivers/tty/serial/fsl_lpuart.c:2878:9: note: Calling 'lpuart_start_rx_dma'
                           if (!lpuart_start_rx_dma(sport))
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/tty/serial/fsl_lpuart.c:1274:9: note: Assuming the condition is false
           bits = (termios->c_cflag & CSIZE) == CS7 ? 9 : 10;
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/tty/serial/fsl_lpuart.c:1274:9: note: '?' condition is false
   drivers/tty/serial/fsl_lpuart.c:1275:6: note: Assuming the condition is false
           if (termios->c_cflag & PARENB)
               ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/tty/serial/fsl_lpuart.c:1275:2: note: Taking false branch
           if (termios->c_cflag & PARENB)
           ^
   drivers/tty/serial/fsl_lpuart.c:1283:33: note: The result of the left shift 
is undefined because the right operand is negative
           sport->rx_dma_rng_buf_len = (1 << (fls(sport->rx_dma_rng_buf_len) - 
1));
                                          ^  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   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.
   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 with check filters).
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   3 warnings generated.
   drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c:479:2: warning: Value 
stored to 'cif_id' is never read [clang-analyzer-deadcode.DeadStores]
           cif_id = rkisp1_read(rkisp1, RKISP1_CIF_VI_ID);
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c:479:2: note: Value 
stored to 'cif_id' is never read
           cif_id = rkisp1_read(rkisp1, RKISP1_CIF_VI_ID);
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c:910:24: warning: Value 
stored to 'rkisp1' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct rkisp1_device *rkisp1 =
                                 ^~~~~~
   drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c:910:24: note: Value 
stored to 'rkisp1' during its initialization is never read
           struct rkisp1_device *rkisp1 =
                                 ^~~~~~
   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 with check filters).
   3 warnings generated.
   drivers/media/platform/am437x/am437x-vpfe.c:819:2: warning: Value stored to 
'vpfe_int_status' is never read [clang-analyzer-deadcode.DeadStores]
           vpfe_int_status = vpfe_reg_read(ccdc, VPFE_IRQ_STS);
           ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/am437x/am437x-vpfe.c:819:2: note: Value stored to 
'vpfe_int_status' is never read
           vpfe_int_status = vpfe_reg_read(ccdc, VPFE_IRQ_STS);
           ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/am437x/am437x-vpfe.c:1411:2: warning: Value stored to 
'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = 0;
           ^     ~
   drivers/media/platform/am437x/am437x-vpfe.c:1411:2: note: Value stored to 
'ret' is never read
           ret = 0;
           ^     ~
   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 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 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.
   7 warnings generated.
   Suppressed 7 warnings (7 with check filters).
   1 warning generated.
   drivers/mmc/core/core.c:1940:19: warning: Value stored to 'host' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct mmc_host *host = card->host;
                            ^~~~   ~~~~~~~~~~
   drivers/mmc/core/core.c:1940:19: note: Value stored to 'host' during its 
initialization is never read
           struct mmc_host *host = card->host;
                            ^~~~   ~~~~~~~~~~
   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.
   drivers/iio/addac/ad74413r.c:51:8: warning: Excessive padding in 'struct 
ad74413r_state' (32 padding bytes, where 0 is optimal). 
   Optimal fields order: 
   adc_samples_buf, 
   num_gpo_gpios, 
   num_comparator_gpios, 
   sense_resistor_ohms, 
   chip_info, 
   spi, 
   refin_reg, 
   regmap, 
   dev, 
   trig, 
   adc_active_channels, 
   adc_data_completion, 
   lock, 
   gpo_gpio_offsets, 
   comp_gpio_offsets, 
   channel_configs, 
   adc_samples_msg, 
   gpo_gpiochip, 
   comp_gpiochip, 
   adc_samples_xfer, 
   reg_tx_buf, 
   reg_rx_buf, 
   adc_samples_tx_buf, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct ad74413r_state {
   ~~~~~~~^~~~~~~~~~~~~~~~
   drivers/iio/addac/ad74413r.c:51:8: note: Excessive padding in 'struct 
ad74413r_state' (32 padding bytes, where 0 is optimal). Optimal fields order: 
adc_samples_buf, num_gpo_gpios, num_comparator_gpios, sense_resistor_ohms, 
chip_info, spi, refin_reg, regmap, dev, trig, adc_active_channels, 
adc_data_completion, lock, gpo_gpio_offsets, comp_gpio_offsets, 
channel_configs, adc_samples_msg, gpo_gpiochip, comp_gpiochip, 
adc_samples_xfer, reg_tx_buf, reg_rx_buf, adc_samples_tx_buf, consider 
reordering the fields or adding explicit padding members
   struct ad74413r_state {
   ~~~~~~~^~~~~~~~~~~~~~~~
   1 warning generated.
   drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c:74:17: warning: Value 
stored to 'dev' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c:74:17: note: Value stored 
to 'dev' during its initialization is never read
           struct device *dev = ctx->dev;
                          ^~~   ~~~~~~~~
   1 warning generated.
   drivers/input/rmi4/rmi_f11.c:1129:2: warning: Value stored to 'query_offset' 
is never read [clang-analyzer-deadcode.DeadStores]
           query_offset += rc;
           ^               ~~
   drivers/input/rmi4/rmi_f11.c:1129:2: note: Value stored to 'query_offset' is 
never read
           query_offset += rc;
           ^               ~~
   3 warnings generated.
   drivers/input/rmi4/rmi_f12.c:133:3: warning: Value stored to 'offset' is 
never read [clang-analyzer-deadcode.DeadStores]
                   offset += 1;
                   ^         ~
   drivers/input/rmi4/rmi_f12.c:133:3: note: Value stored to 'offset' is never 
read
                   offset += 1;
                   ^         ~
   drivers/input/rmi4/rmi_f12.c:401:2: warning: Value stored to 'query_addr' is 
never read [clang-analyzer-deadcode.DeadStores]
           query_addr += 3;
           ^             ~
   drivers/input/rmi4/rmi_f12.c:401:2: note: Value stored to 'query_addr' is 
never read
           query_addr += 3;
           ^             ~
   drivers/input/rmi4/rmi_f12.c:520:3: warning: Value stored to 'data_offset' 
is never read [clang-analyzer-deadcode.DeadStores]
                   data_offset += item->reg_size;
                   ^              ~~~~~~~~~~~~~~
   drivers/input/rmi4/rmi_f12.c:520:3: note: Value stored to 'data_offset' is 
never read
                   data_offset += item->reg_size;
                   ^              ~~~~~~~~~~~~~~
   4 warnings generated.
   drivers/greybus/svc.c:1144:2: warning: Value stored to 'reset' is never read 
[clang-analyzer-deadcode.DeadStores]
           reset = request->payload;
           ^       ~~~~~~~~~~~~~~~~
   drivers/greybus/svc.c:1144:2: note: Value stored to 'reset' is never read
           reset = request->payload;
           ^       ~~~~~~~~~~~~~~~~
   drivers/greybus/svc.c:1162:2: warning: Value stored to 'request' is never 
read [clang-analyzer-deadcode.DeadStores]
           request = op->request->payload;
           ^         ~~~~~~~~~~~~~~~~~~~~
   drivers/greybus/svc.c:1162:2: note: Value stored to 'request' is never read
           request = op->request->payload;

vim +/isc_clk +125 drivers/media/platform/atmel/atmel-isc-clk.c

118bf76a35bc2ed Eugen Hristev 2021-12-13  121  
118bf76a35bc2ed Eugen Hristev 2021-12-13  122  static int 
isc_clk_determine_rate(struct clk_hw *hw,
118bf76a35bc2ed Eugen Hristev 2021-12-13  123                             
struct clk_rate_request *req)
118bf76a35bc2ed Eugen Hristev 2021-12-13  124  {
118bf76a35bc2ed Eugen Hristev 2021-12-13 @125   struct isc_clk *isc_clk = 
to_isc_clk(hw);
118bf76a35bc2ed Eugen Hristev 2021-12-13  126   long best_rate = -EINVAL;
118bf76a35bc2ed Eugen Hristev 2021-12-13  127   int best_diff = -1;
118bf76a35bc2ed Eugen Hristev 2021-12-13  128   unsigned int i, div;
118bf76a35bc2ed Eugen Hristev 2021-12-13  129  
118bf76a35bc2ed Eugen Hristev 2021-12-13  130   for (i = 0; i < 
clk_hw_get_num_parents(hw); i++) {
118bf76a35bc2ed Eugen Hristev 2021-12-13  131           struct clk_hw *parent;
118bf76a35bc2ed Eugen Hristev 2021-12-13  132           unsigned long 
parent_rate;
118bf76a35bc2ed Eugen Hristev 2021-12-13  133  
118bf76a35bc2ed Eugen Hristev 2021-12-13  134           parent = 
clk_hw_get_parent_by_index(hw, i);
118bf76a35bc2ed Eugen Hristev 2021-12-13  135           if (!parent)
118bf76a35bc2ed Eugen Hristev 2021-12-13  136                   continue;
118bf76a35bc2ed Eugen Hristev 2021-12-13  137  
118bf76a35bc2ed Eugen Hristev 2021-12-13  138           parent_rate = 
clk_hw_get_rate(parent);
118bf76a35bc2ed Eugen Hristev 2021-12-13  139           if (!parent_rate)
118bf76a35bc2ed Eugen Hristev 2021-12-13  140                   continue;
118bf76a35bc2ed Eugen Hristev 2021-12-13  141  
118bf76a35bc2ed Eugen Hristev 2021-12-13  142           for (div = 1; div < 
ISC_CLK_MAX_DIV + 2; div++) {
118bf76a35bc2ed Eugen Hristev 2021-12-13  143                   unsigned long 
rate;
118bf76a35bc2ed Eugen Hristev 2021-12-13  144                   int diff;
118bf76a35bc2ed Eugen Hristev 2021-12-13  145  
118bf76a35bc2ed Eugen Hristev 2021-12-13  146                   rate = 
DIV_ROUND_CLOSEST(parent_rate, div);
118bf76a35bc2ed Eugen Hristev 2021-12-13  147                   diff = 
abs(req->rate - rate);
118bf76a35bc2ed Eugen Hristev 2021-12-13  148  
118bf76a35bc2ed Eugen Hristev 2021-12-13  149                   if (best_diff < 
0 || best_diff > diff) {
118bf76a35bc2ed Eugen Hristev 2021-12-13  150                           
best_rate = rate;
118bf76a35bc2ed Eugen Hristev 2021-12-13  151                           
best_diff = diff;
118bf76a35bc2ed Eugen Hristev 2021-12-13  152                           
req->best_parent_rate = parent_rate;
118bf76a35bc2ed Eugen Hristev 2021-12-13  153                           
req->best_parent_hw = parent;
118bf76a35bc2ed Eugen Hristev 2021-12-13  154                   }
118bf76a35bc2ed Eugen Hristev 2021-12-13  155  
118bf76a35bc2ed Eugen Hristev 2021-12-13  156                   if (!best_diff 
|| rate < req->rate)
118bf76a35bc2ed Eugen Hristev 2021-12-13  157                           break;
118bf76a35bc2ed Eugen Hristev 2021-12-13  158           }
118bf76a35bc2ed Eugen Hristev 2021-12-13  159  
118bf76a35bc2ed Eugen Hristev 2021-12-13  160           if (!best_diff)
118bf76a35bc2ed Eugen Hristev 2021-12-13  161                   break;
118bf76a35bc2ed Eugen Hristev 2021-12-13  162   }
118bf76a35bc2ed Eugen Hristev 2021-12-13  163  
118bf76a35bc2ed Eugen Hristev 2021-12-13  164   dev_dbg(isc_clk->dev,
118bf76a35bc2ed Eugen Hristev 2021-12-13  165           "ISC CLK: %s, best_rate 
= %ld, parent clk: %s @ %ld\n",
118bf76a35bc2ed Eugen Hristev 2021-12-13  166           __func__, best_rate,
118bf76a35bc2ed Eugen Hristev 2021-12-13  167           
__clk_get_name((req->best_parent_hw)->clk),
118bf76a35bc2ed Eugen Hristev 2021-12-13  168           req->best_parent_rate);
118bf76a35bc2ed Eugen Hristev 2021-12-13  169  
118bf76a35bc2ed Eugen Hristev 2021-12-13  170   if (best_rate < 0)
118bf76a35bc2ed Eugen Hristev 2021-12-13  171           return best_rate;
118bf76a35bc2ed Eugen Hristev 2021-12-13  172  
118bf76a35bc2ed Eugen Hristev 2021-12-13  173   req->rate = best_rate;
118bf76a35bc2ed Eugen Hristev 2021-12-13  174  
118bf76a35bc2ed Eugen Hristev 2021-12-13  175   return 0;
118bf76a35bc2ed Eugen Hristev 2021-12-13  176  }
118bf76a35bc2ed Eugen Hristev 2021-12-13  177  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to