CC: [email protected]
CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Damien Le Moal <[email protected]>
CC: Hannes Reinecke <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   09688c0166e76ce2fb85e86b9d99be8b0084cdf9
commit: a3d11c275b647b5b56b907011b432e00f7ddb683 ata: pata_bk3710: add compile 
test support
date:   9 weeks ago
:::::: branch date: 2 days ago
:::::: commit date: 9 weeks ago
config: arm-randconfig-c002-20220312 
(https://download.01.org/0day-ci/archive/20220315/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
276ca87382b8f16a65bddac700202924228982f6)
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=a3d11c275b647b5b56b907011b432e00f7ddb683
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout a3d11c275b647b5b56b907011b432e00f7ddb683
        # 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 <[email protected]>


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.
   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.
   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.
   10 warnings generated.
   drivers/crypto/hifn_795x.c:598:8: warning: Excessive padding in 'struct 
hifn_crypto_alg' (52 padding bytes, where 20 is optimal). 
   Optimal fields order: 
   alg, 
   dev, 
   entry, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct hifn_crypto_alg {
   ~~~~~~~^~~~~~~~~~~~~~~~~
   drivers/crypto/hifn_795x.c:598:8: note: Excessive padding in 'struct 
hifn_crypto_alg' (52 padding bytes, where 20 is optimal). Optimal fields order: 
alg, dev, entry, consider reordering the fields or adding explicit padding 
members
   struct hifn_crypto_alg {
   ~~~~~~~^~~~~~~~~~~~~~~~~
   drivers/crypto/hifn_795x.c:1103:3: warning: Null pointer passed as 2nd 
argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
                   memcpy(buf_pos, iv, ivsize);
                   ^
   drivers/crypto/hifn_795x.c:1125:2: note: Control jumps to 'case 1:'  at line 
1129
           switch (rctx->op) {
           ^
   drivers/crypto/hifn_795x.c:1131:3: note:  Execution continues on line 1139
                   break;
                   ^
   drivers/crypto/hifn_795x.c:1142:12: note: Field 'op' is equal to 
ACRYPTO_OP_ENCRYPT
           if (rctx->op == ACRYPTO_OP_ENCRYPT || rctx->op == 
ACRYPTO_OP_DECRYPT) {
                     ^
   drivers/crypto/hifn_795x.c:1142:37: note: Left side of '||' is true
           if (rctx->op == ACRYPTO_OP_ENCRYPT || rctx->op == 
ACRYPTO_OP_DECRYPT) {
                                              ^
   drivers/crypto/hifn_795x.c:1145:7: note: Assuming field 'keysize' is not 
equal to 0
                   if (ctx->keysize)
                       ^~~~~~~~~~~~
   drivers/crypto/hifn_795x.c:1145:3: note: Taking true branch
                   if (ctx->keysize)
                   ^
   drivers/crypto/hifn_795x.c:1147:7: note: Assuming field 'iv' is null
                   if (rctx->iv && rctx->mode != ACRYPTO_MODE_ECB)
                       ^~~~~~~~
   drivers/crypto/hifn_795x.c:1147:16: note: Left side of '&&' is false
                   if (rctx->iv && rctx->mode != ACRYPTO_MODE_ECB)
                                ^
   drivers/crypto/hifn_795x.c:1150:3: note: Control jumps to 'case 3:'  at line 
1160
                   switch (rctx->mode) {
                   ^
   drivers/crypto/hifn_795x.c:1162:4: note:  Execution continues on line 1167
                           break;
                           ^
   drivers/crypto/hifn_795x.c:1167:3: note: Control jumps to 'case 4:'  at line 
1191
                   switch (rctx->type) {
                   ^
   drivers/crypto/hifn_795x.c:1192:8: note: Assuming field 'keysize' is equal 
to 8
                           if (ctx->keysize != 8)
                               ^~~~~~~~~~~~~~~~~
   drivers/crypto/hifn_795x.c:1192:4: note: Taking false branch
                           if (ctx->keysize != 8)
                           ^
   drivers/crypto/hifn_795x.c:1195:4: note:  Execution continues on line 1200
                           break;
                           ^
   drivers/crypto/hifn_795x.c:1202:5: note: Passing null pointer value via 7th 
parameter 'iv'
                                   rctx->iv, rctx->ivsize, md);
                                   ^~~~~~~~
   drivers/crypto/hifn_795x.c:1200:14: note: Calling 'hifn_setup_crypto_command'
                   buf_pos += hifn_setup_crypto_command(dev, buf_pos,
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/crypto/hifn_795x.c:1093:6: note: Assuming field 'cmdu' is <= 1
           if (dma->cmdu > 1) {
               ^~~~~~~~~~~~~
   drivers/crypto/hifn_795x.c:1093:2: note: Taking false branch
           if (dma->cmdu > 1) {
           ^
   drivers/crypto/hifn_795x.c:1098:6: note: 'keylen' is 8
           if (keylen) {
               ^~~~~~
   drivers/crypto/hifn_795x.c:1098:2: note: Taking true branch
           if (keylen) {
           ^
   drivers/crypto/hifn_795x.c:1102:6: note: Assuming 'ivsize' is not equal to 0
           if (ivsize) {
               ^~~~~~
   drivers/crypto/hifn_795x.c:1102:2: note: Taking true branch
           if (ivsize) {
           ^
   drivers/crypto/hifn_795x.c:1103:3: note: Null pointer passed as 2nd argument 
to memory copy function
                   memcpy(buf_pos, iv, ivsize);
                   ^               ~~
   drivers/crypto/hifn_795x.c:1124:2: warning: Value stored to 'mask' is never 
read [clang-analyzer-deadcode.DeadStores]
           mask = 0;
           ^      ~
   drivers/crypto/hifn_795x.c:1124:2: note: Value stored to 'mask' is never read
           mask = 0;
           ^      ~
   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.
   10 warnings generated.
>> drivers/ata/pata_bk3710.c:179:4: warning: Value stored to 'mode' is never 
>> read [clang-analyzer-deadcode.DeadStores]
                           mode = mode2;
                           ^      ~~~~~
   drivers/ata/pata_bk3710.c:179:4: note: Value stored to 'mode' is never read
                           mode = mode2;
                           ^      ~~~~~
   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.
   23 warnings generated.
   net/socket.c:585:3: warning: Value stored to 'buffer' is never read 
[clang-analyzer-deadcode.DeadStores]
                   buffer += len;
                   ^         ~~~
   net/socket.c:585:3: note: Value stored to 'buffer' is never read
                   buffer += len;
                   ^         ~~~
   net/socket.c:644:6: warning: Access to field 'ops' results in a dereference 
of a null pointer (loaded from variable 'sock') 
[clang-analyzer-core.NullDereference]
           if (sock->ops) {
               ^
   net/socket.c:3419:6: note: Assuming 'err' is >= 0
           if (err < 0)
               ^~~~~~~
   net/socket.c:3419:2: note: Taking false branch
           if (err < 0)
           ^
   net/socket.c:3423:6: note: Assuming 'err' is < 0
           if (err < 0) {
               ^~~~~~~
   net/socket.c:3423:2: note: Taking true branch
           if (err < 0) {
           ^
   net/socket.c:3424:16: note: Passing null pointer value via 1st parameter 
'sock'
                   sock_release(*newsock);
                                ^~~~~~~~
   net/socket.c:3424:3: note: Calling 'sock_release'
                   sock_release(*newsock);
                   ^~~~~~~~~~~~~~~~~~~~~~
   net/socket.c:677:17: note: Passing null pointer value via 1st parameter 
'sock'
           __sock_release(sock, NULL);
                          ^~~~
   net/socket.c:677:2: note: Calling '__sock_release'
           __sock_release(sock, NULL);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/socket.c:644:6: note: Access to field 'ops' results in a dereference of 
a null pointer (loaded from variable 'sock')
           if (sock->ops) {
               ^~~~
   net/socket.c:1561:9: warning: 1st function call argument is an uninitialized 
value [clang-analyzer-core.CallAndMessage]
           return sock_map_fd(sock, flags & (O_CLOEXEC | O_NONBLOCK));
                  ^
   net/socket.c:1564:1: note: Calling '__do_sys_socket'
   SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
   ^
   include/linux/syscalls.h:219:36: note: expanded from macro 'SYSCALL_DEFINE3'
   #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:228:2: note: expanded from macro 'SYSCALL_DEFINEx'
           __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/syscalls.h:249:14: note: expanded from macro 
'__SYSCALL_DEFINEx'
                   long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   note: expanded from here
   net/socket.c:1566:9: note: Calling '__sys_socket'
           return __sys_socket(family, type, protocol);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/socket.c:1540:2: note: 'sock' declared without an initial value
           struct socket *sock;
           ^~~~~~~~~~~~~~~~~~~
   net/socket.c:1544:15: note: 524288 is equal to 524288
           BUILD_BUG_ON(SOCK_CLOEXEC != O_CLOEXEC);
                        ^
   include/linux/net.h:77:22: note: expanded from macro 'SOCK_CLOEXEC'
   #define SOCK_CLOEXEC    O_CLOEXEC
                           ^~~~~~~~~
   include/uapi/asm-generic/fcntl.h:63:19: note: expanded from macro 'O_CLOEXEC'
   #define O_CLOEXEC       02000000        /* set close_on_exec */
                           ^~~~~~~~
   include/linux/build_bug.h:50:19: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
                            ^~~~~~~~~
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to 
see all)
   include/linux/compiler_types.h:335:22: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
                               ^~~~~~~~~
   include/linux/compiler_types.h:323:23: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:315:9: note: expanded from macro 
'__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   net/socket.c:1544:2: note: Taking false branch
           BUILD_BUG_ON(SOCK_CLOEXEC != O_CLOEXEC);
           ^
   include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
           ^

vim +/mode +179 drivers/ata/pata_bk3710.c

76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  148  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  149  static void 
pata_bk3710_setpiomode(void __iomem *base, struct ata_device *pair,
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  150                       
           unsigned int dev, unsigned int cycletime,
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  151                       
           unsigned int mode)
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  152  {
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  153       const struct 
ata_timing *t;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  154       u32 val32;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  155       u8 t2, t2i, t0;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  156  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  157       t = 
ata_timing_find_mode(XFER_PIO_0 + mode);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  158  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  159       /* PIO Data 
Setup */
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  160       t0 = 
DIV_ROUND_UP(cycletime, ideclk_period);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  161       t2 = 
DIV_ROUND_UP(t->active, ideclk_period);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  162  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  163       t2i = t0 - t2 - 
1;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  164       t2--;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  165  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  166       val32 = 
ioread32(base + BK3710_DATSTB) & (0xFF << (dev ? 0 : 8));
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  167       val32 |= t2 << 
(dev ? 8 : 0);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  168       
iowrite32(val32, base + BK3710_DATSTB);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  169  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  170       val32 = 
ioread32(base + BK3710_DATRCVR) & (0xFF << (dev ? 0 : 8));
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  171       val32 |= t2i << 
(dev ? 8 : 0);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  172       
iowrite32(val32, base + BK3710_DATRCVR);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  173  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  174       /* FIXME: this 
is broken also in the old driver */
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  175       if (pair) {
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  176               u8 
mode2 = pair->pio_mode - XFER_PIO_0;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  177  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  178               if 
(mode2 < mode)
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22 @179                       
mode = mode2;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  180       }
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  181  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  182       /* TASKFILE 
Setup */
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  183       t0 = 
DIV_ROUND_UP(t->cyc8b, ideclk_period);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  184       t2 = 
DIV_ROUND_UP(t->act8b, ideclk_period);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  185  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  186       t2i = t0 - t2 - 
1;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  187       t2--;
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  188  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  189       val32 = 
ioread32(base + BK3710_REGSTB) & (0xFF << (dev ? 0 : 8));
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  190       val32 |= t2 << 
(dev ? 8 : 0);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  191       
iowrite32(val32, base + BK3710_REGSTB);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  192  
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  193       val32 = 
ioread32(base + BK3710_REGRCVR) & (0xFF << (dev ? 0 : 8));
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  194       val32 |= t2i << 
(dev ? 8 : 0);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  195       
iowrite32(val32, base + BK3710_REGRCVR);
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  196  }
76a40ca82f3498d Bartlomiej Zolnierkiewicz 2017-03-22  197  

:::::: The code at line 179 was first introduced by commit
:::::: 76a40ca82f3498da2683b3d5efa9b24d5ffaeecc ata: add Palmchip BK3710 PATA 
controller driver

:::::: TO: Bartlomiej Zolnierkiewicz <[email protected]>
:::::: CC: Sekhar Nori <[email protected]>

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

Reply via email to