CC: [email protected]
CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Ivan Mikhaylov <[email protected]>
CC: Jonathan Cameron <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   b9011c7e671dbbf59bb753283ddfd03f0c9eb865
commit: f5e9e38e7063dbe2c811bb5ee7d255318eb064b3 [2705/8423] iio: proximity: 
vcnl3020: add DMA safe buffer
:::::: branch date: 24 hours ago
:::::: commit date: 3 weeks ago
config: riscv-randconfig-c006-20210816 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
44d0a99a12ec7ead4d2f5ef649ba05b40f6d463d)
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/next/linux-next.git/commit/?id=f5e9e38e7063dbe2c811bb5ee7d255318eb064b3
        git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next master
        git checkout f5e9e38e7063dbe2c811bb5ee7d255318eb064b3
        # 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 >>)
           if (req->state == NVME_TCP_SEND_H2C_PDU) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvme/host/tcp.c:1084:2: note: Taking false branch
           if (req->state == NVME_TCP_SEND_H2C_PDU) {
           ^
   drivers/nvme/host/tcp.c:1090:6: note: Assuming field 'state' is equal to 
NVME_TCP_SEND_DATA
           if (req->state == NVME_TCP_SEND_DATA) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvme/host/tcp.c:1090:2: note: Taking true branch
           if (req->state == NVME_TCP_SEND_DATA) {
           ^
   drivers/nvme/host/tcp.c:1091:9: note: Calling 'nvme_tcp_try_send_data'
                   ret = nvme_tcp_try_send_data(req);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvme/host/tcp.c:925:2: note: Loop condition is true.  Entering loop 
body
           while (true) {
           ^
   drivers/nvme/host/tcp.c:932:7: note: 'last' is false
                   if (last && !queue->data_digest && 
!nvme_tcp_queue_more(queue))
                       ^~~~
   drivers/nvme/host/tcp.c:932:12: note: Left side of '&&' is false
                   if (last && !queue->data_digest && 
!nvme_tcp_queue_more(queue))
                            ^
   drivers/nvme/host/tcp.c:937:7: note: Assuming the condition is false
                   if (sendpage_ok(page)) {
                       ^~~~~~~~~~~~~~~~~
   drivers/nvme/host/tcp.c:937:3: note: Taking false branch
                   if (sendpage_ok(page)) {
                   ^
   drivers/nvme/host/tcp.c:944:7: note: Assuming 'ret' is > 0
                   if (ret <= 0)
                       ^~~~~~~~
   drivers/nvme/host/tcp.c:944:3: note: Taking false branch
                   if (ret <= 0)
                   ^
   drivers/nvme/host/tcp.c:947:7: note: Assuming field 'data_digest' is true
                   if (queue->data_digest)
                       ^~~~~~~~~~~~~~~~~~
   drivers/nvme/host/tcp.c:947:3: note: Taking true branch
                   if (queue->data_digest)
                   ^
   drivers/nvme/host/tcp.c:948:4: note: Calling 'nvme_tcp_ddgst_update'
                           nvme_tcp_ddgst_update(queue->snd_hash, page,
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/nvme/host/tcp.c:344:2: note: Calling 'sg_init_marker'
           sg_init_marker(&sg, 1);
           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/scatterlist.h:264:2: note: Calling 'sg_mark_end'
           sg_mark_end(&sgl[nents - 1]);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/scatterlist.h:208:16: note: The left expression of the 
compound assignment is an uninitialized value. The computed value will also be 
garbage
           sg->page_link |= SG_END;
           ~~~~~~~~~~~~~ ^
   Suppressed 14 warnings (14 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   8 warnings generated.
   drivers/iio/proximity/as3935.c:53:8: warning: Excessive padding in 'struct 
as3935_state' (122 padding bytes, where 58 is optimal). 
   Optimal fields order: 
   buf, 
   spi, 
   scan, 
   trig, 
   noise_tripped, 
   tune_cap, 
   nflwdth_reg, 
   lock, 
   work, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct as3935_state {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/proximity/as3935.c:53:8: note: Excessive padding in 'struct 
as3935_state' (122 padding bytes, where 58 is optimal). Optimal fields order: 
buf, spi, scan, trig, noise_tripped, tune_cap, nflwdth_reg, lock, work, 
consider reordering the fields or adding explicit padding members
   struct as3935_state {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   10 warnings generated.
   Suppressed 10 warnings (9 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.
   7 warnings generated.
   Suppressed 7 warnings (7 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   10 warnings generated.
>> drivers/iio/proximity/vcnl3020.c:62:8: warning: Excessive padding in 'struct 
>> vcnl3020_data' (105 padding bytes, where 41 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:62:8: note: Excessive padding in 'struct 
vcnl3020_data' (105 padding bytes, where 41 is optimal). Optimal fields order: 
buf, rev, regmap, dev, lock, consider reordering the fields or adding explicit 
padding members
   struct vcnl3020_data {
   ~~~~~~~^~~~~~~~~~~~~~~
   Suppressed 9 warnings (9 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.
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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.
   Suppressed 6 warnings (6 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 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.
   8 warnings generated.
   Suppressed 8 warnings (8 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   Suppressed 6 warnings (6 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 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.
   15 warnings generated.
   Suppressed 15 warnings (15 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.
   14 warnings generated.
   Suppressed 14 warnings (14 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.
   14 warnings generated.
   Suppressed 14 warnings (14 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.
   8 warnings generated.
   drivers/iio/accel/sca3300.c:111:8: warning: Excessive padding in 'struct 
sca3300_data' (88 padding bytes, where 24 is optimal). 
   Optimal fields order: 
   txbuf, 
   spi, 
   scan, 
   lock, 
   rxbuf, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct sca3300_data {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/accel/sca3300.c:111:8: note: Excessive padding in 'struct 
sca3300_data' (88 padding bytes, where 24 is optimal). Optimal fields order: 
txbuf, spi, scan, lock, rxbuf, consider reordering the fields or adding 
explicit padding members
   struct sca3300_data {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 7 warnings (7 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   10 warnings generated.
   drivers/iio/adc/ad7292.c:78:8: warning: Excessive padding in 'struct 
ad7292_state' (114 padding bytes, where 50 is optimal). 
   Optimal fields order: 
   d16, 
   vref_mv, 
   spi, 
   reg, 
   d8, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct ad7292_state {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/adc/ad7292.c:78:8: note: Excessive padding in 'struct 
ad7292_state' (114 padding bytes, where 50 is optimal). Optimal fields order: 
d16, vref_mv, spi, reg, d8, consider reordering the fields or adding explicit 
padding members
   struct ad7292_state {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 9 warnings (9 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.

vim +62 drivers/iio/proximity/vcnl3020.c

6a878e70e88b53 Ivan Mikhaylov 2021-02-25  53  
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  54  /**
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  55   * struct vcnl3020_data - 
vcnl3020 specific data.
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  56   * @regmap:       device register 
map.
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  57   * @dev:  vcnl3020 device.
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  58   * @rev:  revision id.
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  59   * @lock: lock for protecting 
access to device hardware registers.
f5e9e38e7063db Ivan Mikhaylov 2021-07-22  60   * @buf:  DMA safe __be16 buffer.
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  61   */
ac101e6b315bfe Ivan Mikhaylov 2020-05-10 @62  struct vcnl3020_data {
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  63    struct regmap *regmap;
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  64    struct device *dev;
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  65    u8 rev;
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  66    struct mutex lock;
f5e9e38e7063db Ivan Mikhaylov 2021-07-22  67    __be16 buf 
____cacheline_aligned;
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  68  };
ac101e6b315bfe Ivan Mikhaylov 2020-05-10  69  

:::::: The code at line 62 was first introduced by commit
:::::: ac101e6b315bfeb5a4f43a962f589e567855c177 iio: proximity: Add driver 
support for vcnl3020 proximity sensor

:::::: TO: Ivan Mikhaylov <[email protected]>
:::::: CC: Jonathan Cameron <[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