CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Paul Kocialkowski <[email protected]>
CC: Mauro Carvalho Chehab <[email protected]>
CC: [email protected]
CC: Sakari Ailus <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   5833291ab6de9c3e2374336b51c814e515e8f3a5
commit: e43ccb0a045f34838b786e8021dc4838b4af5c38 media: i2c: Add support for 
the OV5648 image sensor
date:   10 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 10 months ago
config: riscv-randconfig-c006-20211031 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
d321548c3ce987f4f21350ba1c81fdb5d4354224)
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 riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e43ccb0a045f34838b786e8021dc4838b4af5c38
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout e43ccb0a045f34838b786e8021dc4838b4af5c38
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 
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 >>)
   drivers/watchdog/pcwd_pci.c:696:2: note: Taking false branch
           if (pci_enable_device(pdev)) {
           ^
   drivers/watchdog/pcwd_pci.c:701:6: note: Assuming field 'start' is not equal 
to 0
           if (pci_resource_start(pdev, 0) == 0x0000) {
               ^
   include/linux/pci.h:1854:38: note: expanded from macro 'pci_resource_start'
   #define pci_resource_start(dev, bar)    ((dev)->resource[(bar)].start)
                                           ^
   drivers/watchdog/pcwd_pci.c:701:2: note: Taking false branch
           if (pci_resource_start(pdev, 0) == 0x0000) {
           ^
   drivers/watchdog/pcwd_pci.c:707:2: note: Loop condition is false.  Exiting 
loop
           spin_lock_init(&pcipcwd_private.io_lock);
           ^
   include/linux/spinlock.h:334:35: note: expanded from macro 'spin_lock_init'
   # define spin_lock_init(lock)                                   \
                                                                   ^
   drivers/watchdog/pcwd_pci.c:711:6: note: Assuming the condition is false
           if (pci_request_regions(pdev, WATCHDOG_NAME)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/watchdog/pcwd_pci.c:711:2: note: Taking false branch
           if (pci_request_regions(pdev, WATCHDOG_NAME)) {
           ^
   drivers/watchdog/pcwd_pci.c:731:2: note: Calling 'pcipcwd_show_card_info'
           pcipcwd_show_card_info();
           ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/watchdog/pcwd_pci.c:226:32: note: 'fw_rev_minor' declared without an 
initial value
           int got_fw_rev, fw_rev_major, fw_rev_minor;
                                         ^~~~~~~~~~~~
   drivers/watchdog/pcwd_pci.c:230:15: note: Calling 'send_command'
           got_fw_rev = send_command(CMD_GET_FIRMWARE_VERSION, &fw_rev_major,
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/watchdog/pcwd_pci.c:158:6: note: Assuming 'debug' is < DEBUG
           if (debug >= DEBUG)
               ^~~~~~~~~~~~~~
   drivers/watchdog/pcwd_pci.c:158:2: note: Taking false branch
           if (debug >= DEBUG)
           ^
   drivers/watchdog/pcwd_pci.c:169:2: note: 1st function call argument is an 
uninitialized value
           outb_p(*lsb, pcipcwd_private.io_addr + 4);
           ^      ~~~~
   include/asm-generic/io.h:577:16: note: expanded from macro 'outb_p'
   #define outb_p outb_p
                  ^
   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.
   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.
   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.
   drivers/staging/comedi/drivers/pcmmio.c:578:2: warning: Value stored to 
'val' is never read [clang-analyzer-deadcode.DeadStores]
           val |= inb(iobase + PCMMIO_AI_MSB_REG) << 8;
           ^
   drivers/staging/comedi/drivers/pcmmio.c:578:2: note: Value stored to 'val' 
is never read
   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.
   4 warnings generated.
>> drivers/media/i2c/ov5648.c:587:8: warning: Excessive padding in 'struct 
>> ov5648_mode' (10 padding bytes, where 2 is optimal). 
   Optimal fields order: 
   pll2_config, 
   register_values, 
   pll1_config, 
   crop_start_x, 
   offset_x, 
   output_size_x, 
   crop_end_x, 
   hts, 
   crop_start_y, 
   offset_y, 
   output_size_y, 
   crop_end_y, 
   vts, 
   inc_x_odd, 
   inc_x_even, 
   inc_y_odd, 
   inc_y_even, 
   register_values_count, 
   frame_interval, 
   binning_x, 
   binning_y, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct ov5648_mode {
   ~~~~~~~^~~~~~~~~~~~~
   drivers/media/i2c/ov5648.c:587:8: note: Excessive padding in 'struct 
ov5648_mode' (10 padding bytes, where 2 is optimal). Optimal fields order: 
pll2_config, register_values, pll1_config, crop_start_x, offset_x, 
output_size_x, crop_end_x, hts, crop_start_y, offset_y, output_size_y, 
crop_end_y, vts, inc_x_odd, inc_x_even, inc_y_odd, inc_y_even, 
register_values_count, frame_interval, binning_x, binning_y, consider 
reordering the fields or adding explicit padding members
   struct ov5648_mode {
   ~~~~~~~^~~~~~~~~~~~~
   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.
   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.
   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.
   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.

vim +587 drivers/media/i2c/ov5648.c

e43ccb0a045f34 Paul Kocialkowski 2020-12-31  575  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  576  /*
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  577   * General formulas for 
(array-centered) mode calculation:
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  578   * - photo_array_width = 2624
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  579   * - crop_start_x = 
(photo_array_width - output_size_x) / 2
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  580   * - crop_end_x = 
crop_start_x + offset_x + output_size_x - 1
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  581   *
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  582   * - photo_array_height = 1956
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  583   * - crop_start_y = 
(photo_array_height - output_size_y) / 2
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  584   * - crop_end_y = 
crop_start_y + offset_y + output_size_y - 1
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  585   */
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  586  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31 @587  struct ov5648_mode {
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  588        unsigned int 
crop_start_x;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  589        unsigned int offset_x;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  590        unsigned int 
output_size_x;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  591        unsigned int crop_end_x;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  592        unsigned int hts;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  593  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  594        unsigned int 
crop_start_y;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  595        unsigned int offset_y;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  596        unsigned int 
output_size_y;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  597        unsigned int crop_end_y;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  598        unsigned int vts;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  599  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  600        bool binning_x;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  601        bool binning_y;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  602  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  603        unsigned int inc_x_odd;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  604        unsigned int inc_x_even;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  605        unsigned int inc_y_odd;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  606        unsigned int inc_y_even;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  607  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  608        /* 8-bit frame interval 
followed by 10-bit frame interval. */
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  609        struct v4l2_fract 
frame_interval[2];
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  610  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  611        /* 8-bit config 
followed by 10-bit config. */
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  612        const struct 
ov5648_pll1_config *pll1_config[2];
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  613        const struct 
ov5648_pll2_config *pll2_config;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  614  
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  615        const struct 
ov5648_register_value *register_values;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  616        unsigned int 
register_values_count;
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  617  };
e43ccb0a045f34 Paul Kocialkowski 2020-12-31  618  

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