All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/scsi/elx/efct/efct_hw.c:1518:3: warning: Value stored to 'ctx' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-01-03  2:36 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-01-03  2:36 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 52075 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: James Smart <jsmart2021@gmail.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Hannes Reinecke <hare@suse.de>
CC: Daniel Wagner <dwagner@suse.de>
CC: Ram Vegesna <ram.vegesna@broadcom.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   c9e6606c7fe92b50a02ce51dda82586ebdf99b48
commit: ebc076b3eddc807729bd81f7bc48e798a3ddc477 scsi: elx: efct: Tie into kernel Kconfig and build process
date:   7 months ago
:::::: branch date: 4 hours ago
:::::: commit date: 7 months ago
config: x86_64-randconfig-c007-20220101 (https://download.01.org/0day-ci/archive/20220103/202201031035.AWdwjTWB-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project c054402170cd8466683a20385befc0523aba3359)
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
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ebc076b3eddc807729bd81f7bc48e798a3ddc477
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout ebc076b3eddc807729bd81f7bc48e798a3ddc477
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/net/ethernet/qlogic/qed/qed_ooo.c:254:14: note: Loop condition is false.  Exiting loop
                   p_buffer = list_first_entry(&p_ooo_info->free_buffers_list,
                              ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/net/ethernet/qlogic/qed/qed_ooo.c:257:8: note: 'p_buffer' is non-null
                   if (!p_buffer)
                        ^~~~~~~~
   drivers/net/ethernet/qlogic/qed/qed_ooo.c:257:3: note: Taking false branch
                   if (!p_buffer)
                   ^
   drivers/net/ethernet/qlogic/qed/qed_ooo.c:260:3: note: Calling 'list_del'
                   list_del(&p_buffer->list_entry);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:147:14: note: Use of memory after it is freed
           entry->next = LIST_POISON1;
           ~~~~~~~~~~~ ^
   Suppressed 10 warnings (10 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/net/phy/micrel.c:492:28: warning: Value stored to 'of_node' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           const struct device_node *of_node = dev->of_node;
                                     ^~~~~~~   ~~~~~~~~~~~~
   drivers/net/phy/micrel.c:492:28: note: Value stored to 'of_node' during its initialization is never read
           const struct device_node *of_node = dev->of_node;
                                     ^~~~~~~   ~~~~~~~~~~~~
   drivers/net/phy/micrel.c:715:28: warning: Value stored to 'of_node' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           const struct device_node *of_node = dev->of_node;
                                     ^~~~~~~   ~~~~~~~~~~~~
   drivers/net/phy/micrel.c:715:28: note: Value stored to 'of_node' during its initialization is never read
           const struct device_node *of_node = dev->of_node;
                                     ^~~~~~~   ~~~~~~~~~~~~
   drivers/net/phy/micrel.c:911:22: warning: Value stored to 'of_node' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device_node *of_node = dev->of_node;
                               ^~~~~~~   ~~~~~~~~~~~~
   drivers/net/phy/micrel.c:911:22: note: Value stored to 'of_node' during its initialization is never read
           struct device_node *of_node = dev->of_node;
                               ^~~~~~~   ~~~~~~~~~~~~
   drivers/net/phy/micrel.c:975:2: warning: Value stored to 'regval' is never read [clang-analyzer-deadcode.DeadStores]
           regval = phy_read(phydev, KSZ8873MLL_GLOBAL_CONTROL_4);
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/micrel.c:975:2: note: Value stored to 'regval' is never read
           regval = phy_read(phydev, KSZ8873MLL_GLOBAL_CONTROL_4);
           ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (4 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.
   5 warnings generated.
   drivers/net/phy/microchip.c:40:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
                   rc = phy_write(phydev, LAN88XX_INT_MASK, 0x7FFF);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/microchip.c:40:3: note: Value stored to 'rc' is never read
                   rc = phy_write(phydev, LAN88XX_INT_MASK, 0x7FFF);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/microchip.c:41:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
                   rc = phy_read(phydev, LAN88XX_INT_STS);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/phy/microchip.c:41:3: note: Value stored to 'rc' is never read
                   rc = phy_read(phydev, LAN88XX_INT_STS);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
>> drivers/scsi/elx/efct/efct_hw.c:1518:3: warning: Value stored to 'ctx' is never read [clang-analyzer-deadcode.DeadStores]
                   ctx = list_first_entry(&hw->cmd_head,
                   ^
   drivers/scsi/elx/efct/efct_hw.c:1518:3: note: Value stored to 'ctx' is never read
   Suppressed 5 warnings (4 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.
   5 warnings generated.
>> drivers/scsi/elx/efct/efct_hw_queues.c:196:23: warning: Access to field 'hw' results in a dereference of an undefined pointer value [clang-analyzer-core.NullDereference]
           struct efct_hw *hw = eqs[0]->hw;
                                ^
   drivers/scsi/elx/efct/efct_hw_queues.c:32:14: note: Assuming 'i' is >= field 'n_eq'
           for (i = 0; i < hw->config.n_eq; i++) {
                       ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw_queues.c:32:2: note: Loop condition is false. Execution continues on line 73
           for (i = 0; i < hw->config.n_eq; i++) {
           ^
   drivers/scsi/elx/efct/efct_hw_queues.c:73:6: note: Calling 'efct_hw_new_cq_set'
           if (efct_hw_new_cq_set(eqs, cqs, i, hw->num_qentries[SLI4_QTYPE_CQ])) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw_queues.c:196:23: note: Access to field 'hw' results in a dereference of an undefined pointer value
           struct efct_hw *hw = eqs[0]->hw;
                                ^~~~~~~~~~
   Suppressed 4 warnings (4 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.
   21 warnings generated.
>> drivers/scsi/elx/efct/efct_lio.c:1156:15: warning: Value stored to 'efct' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efct *efct = nport->efc->base;
                        ^~~~   ~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1156:15: note: Value stored to 'efct' during its initialization is never read
           struct efct *efct = nport->efc->base;
                        ^~~~   ~~~~~~~~~~~~~~~~
>> drivers/scsi/elx/efct/efct_lio.c:1366:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "FROM_INITIATOR";
                   ^      ~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1366:3: note: Value stored to 'ddir' is never read
                   ddir = "FROM_INITIATOR";
                   ^      ~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1370:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "TO_INITIATOR";
                   ^      ~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1370:3: note: Value stored to 'ddir' is never read
                   ddir = "TO_INITIATOR";
                   ^      ~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1374:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "BIDIR";
                   ^      ~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1374:3: note: Value stored to 'ddir' is never read
                   ddir = "BIDIR";
                   ^      ~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1378:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "NONE";
                   ^      ~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1378:3: note: Value stored to 'ddir' is never read
                   ddir = "NONE";
                   ^      ~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: warning: Access to field 'generate_node_acls' results in a dereference of a null pointer (loaded from variable 'a') [clang-analyzer-core.NullDereference]
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1515:10: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           a->name = val;                                                    \
           ~       ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Left side of '&&' is false
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:29: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
                                      ^
   include/linux/kernel.h:704:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Taking false branch
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:29: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
                                      ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Loop condition is false.  Exiting loop
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:29: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
                                      ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: 'tpg' initialized to a null pointer value
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:2: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
           ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: 'a' initialized to a null pointer value
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1500:2: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg_attrib *a = &tpg->tpg_attrib;                 \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Assuming 'ret' is >= 0
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1505:6: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           if (ret < 0) {                                                    \
               ^~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Taking false branch
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
--
           struct se_portal_group *se_tpg = nacl->se_tpg;
                                   ^~~~~~   ~~~~~~~~~~~~
   drivers/target/target_core_pr.c:1279:39: warning: Value stored to 'tfo' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           const struct target_core_fabric_ops *tfo =
                                                ^~~
   drivers/target/target_core_pr.c:1279:39: note: Value stored to 'tfo' during its initialization is never read
           const struct target_core_fabric_ops *tfo =
                                                ^~~
   drivers/target/target_core_pr.c:1796:3: warning: Value stored to 'dest_se_deve' is never read [clang-analyzer-deadcode.DeadStores]
                   dest_se_deve = tidh->dest_se_deve;
                   ^              ~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:1796:3: note: Value stored to 'dest_se_deve' is never read
                   dest_se_deve = tidh->dest_se_deve;
                   ^              ~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:1954:3: warning: Value stored to 'len' is never read [clang-analyzer-deadcode.DeadStores]
                   len += sprintf(buf+len, "No Registrations or Reservations");
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:1954:3: note: Value stored to 'len' is never read
                   len += sprintf(buf+len, "No Registrations or Reservations");
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:2450:39: warning: Value stored to 'tfo' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           const struct target_core_fabric_ops *tfo = se_nacl->se_tpg->se_tpg_tfo;
                                                ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:2450:39: note: Value stored to 'tfo' during its initialization is never read
           const struct target_core_fabric_ops *tfo = se_nacl->se_tpg->se_tpg_tfo;
                                                ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:2760:39: warning: Value stored to 'tfo' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           const struct target_core_fabric_ops *tfo = nacl->se_tpg->se_tpg_tfo;
                                                ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:2760:39: note: Value stored to 'tfo' during its initialization is never read
           const struct target_core_fabric_ops *tfo = nacl->se_tpg->se_tpg_tfo;
                                                ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:3163:2: warning: Value stored to 'tf_ops' is never read [clang-analyzer-deadcode.DeadStores]
           tf_ops = se_tpg->se_tpg_tfo;
           ^        ~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:3163:2: note: Value stored to 'tf_ops' is never read
           tf_ops = se_tpg->se_tpg_tfo;
           ^        ~~~~~~~~~~~~~~~~~~
   drivers/target/target_core_pr.c:3924:3: warning: Value stored to 'add_desc_len' is never read [clang-analyzer-deadcode.DeadStores]
                   add_desc_len = 0;
                   ^              ~
   drivers/target/target_core_pr.c:3924:3: note: Value stored to 'add_desc_len' is never read
                   add_desc_len = 0;
                   ^              ~
   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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   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.
   4 warnings generated.
   drivers/i2c/algos/i2c-algo-pca.c:195:10: warning: Although the value stored to 'state' is used in the enclosing expression, the value is never actually read from 'state' [clang-analyzer-deadcode.DeadStores]
           while ((state = pca_status(adap)) != 0xf8) {
                   ^
   drivers/i2c/algos/i2c-algo-pca.c:195:10: note: Although the value stored to 'state' is used in the enclosing expression, the value is never actually read from 'state'
   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.
   4 warnings generated.
   drivers/i2c/busses/i2c-amd756.c:108:7: warning: Although the value stored to 'temp' is used in the enclosing expression, the value is never actually read from 'temp' [clang-analyzer-deadcode.DeadStores]
           if ((temp = inw_p(SMB_GLOBAL_STATUS)) & (GS_HST_STS | GS_SMB_STS)) {
                ^
   drivers/i2c/busses/i2c-amd756.c:108:7: note: Although the value stored to 'temp' is used in the enclosing expression, the value is never actually read from 'temp'
   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.
   6 warnings generated.
>> drivers/scsi/elx/efct/efct_unsol.c:147:27: warning: Value stored to 'fchdr' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
                   struct fc_frame_header  *fchdr = seq->header->dma.virt;
                                            ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_unsol.c:147:27: note: Value stored to 'fchdr' during its initialization is never read
                   struct fc_frame_header  *fchdr = seq->header->dma.virt;
                                            ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/elx/efct/efct_unsol.c:320:15: warning: Value stored to 'efct' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efct *efct = node->efct;
                        ^~~~   ~~~~~~~~~~
   drivers/scsi/elx/efct/efct_unsol.c:320:15: note: Value stored to 'efct' during its initialization is never read
           struct efct *efct = node->efct;
                        ^~~~   ~~~~~~~~~~
   Suppressed 4 warnings (4 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.
   5 warnings generated.
>> drivers/scsi/elx/libefc/efc_cmds.c:36:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_cmds.c:36:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_cmds.c:314:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = domain->efc;
                       ^~~   ~~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_cmds.c:314:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = domain->efc;
                       ^~~   ~~~~~~~~~~~
   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.
   5 warnings generated.
>> drivers/scsi/elx/libefc/efc_fabric.c:77:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_fabric.c:77:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
>> drivers/scsi/elx/libefc/efc_fabric.c:398:19: warning: Value stored to 'node' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc_node *node = ctx->app;
                            ^~~~   ~~~~~~~~
   drivers/scsi/elx/libefc/efc_fabric.c:398:19: note: Value stored to 'node' during its initialization is never read
           struct efc_node *node = ctx->app;
                            ^~~~   ~~~~~~~~
   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.
   9 warnings generated.
   drivers/scsi/bnx2fc/bnx2fc_fcoe.c:541:2: warning: Value stored to 'fh' is never read [clang-analyzer-deadcode.DeadStores]
           fh = (struct fc_frame_header *) skb_transport_header(skb);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/bnx2fc/bnx2fc_fcoe.c:541:2: note: Value stored to 'fh' is never read
           fh = (struct fc_frame_header *) skb_transport_header(skb);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   10 warnings generated.
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:692:3: warning: Value stored to 'num_rq' is never read [clang-analyzer-deadcode.DeadStores]
                   num_rq = 1;
                   ^        ~
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:692:3: note: Value stored to 'num_rq' is never read
                   num_rq = 1;
                   ^        ~
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:804:3: warning: Value stored to 'num_rq' is never read [clang-analyzer-deadcode.DeadStores]
                   num_rq = 1;
                   ^        ~
   drivers/scsi/bnx2fc/bnx2fc_hwi.c:804:3: note: Value stored to 'num_rq' is never read
                   num_rq = 1;
                   ^        ~
   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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   drivers/media/i2c/lm3560.c:123:3: warning: Value stored to 'rval' is never read [clang-analyzer-deadcode.DeadStores]
                   rval = lm3560_enable_ctrl(flash, led_no, true);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/lm3560.c:123:3: note: Value stored to 'rval' is never read
                   rval = lm3560_enable_ctrl(flash, led_no, true);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/lm3560.c:146:3: warning: Value stored to 'rval' is never read [clang-analyzer-deadcode.DeadStores]
                   rval = lm3560_enable_ctrl(flash, led_no, true);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/lm3560.c:146:3: note: Value stored to 'rval' is never read
                   rval = lm3560_enable_ctrl(flash, led_no, true);
                   ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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/ccs-pll.c:93:15: warning: Value stored to 's' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
                   const char *s = pll_string(br->which);
                               ^   ~~~~~~~~~~~~~~~~~~~~~
   drivers/media/i2c/ccs-pll.c:93:15: note: Value stored to 's' during its initialization is never read
                   const char *s = pll_string(br->which);
                               ^   ~~~~~~~~~~~~~~~~~~~~~
   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.
   4 warnings generated.
   drivers/media/tuners/tua9001.c:148:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct i2c_client *client = dev->client;
                              ^~~~~~   ~~~~~~~~~~~
   drivers/media/tuners/tua9001.c:148:21: note: Value stored to 'client' during its initialization is never read
           struct i2c_client *client = dev->client;
                              ^~~~~~   ~~~~~~~~~~~
   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.
   15 warnings generated.
   drivers/media/tuners/si2157.c:558:4: warning: Value stored to 'std' is never read [clang-analyzer-deadcode.DeadStores]
                           std = "palGH";
                           ^     ~~~~~~~
   drivers/media/tuners/si2157.c:558:4: note: Value stored to 'std' is never read
                           std = "palGH";
                           ^     ~~~~~~~
   drivers/media/tuners/si2157.c:564:5: warning: Value stored to 'std' is never read [clang-analyzer-deadcode.DeadStores]
                                   std = "secamGH";
                                   ^     ~~~~~~~~~
   drivers/media/tuners/si2157.c:564:5: note: Value stored to 'std' is never read
                                   std = "secamGH";
                                   ^     ~~~~~~~~~
   drivers/media/tuners/si2157.c:568:4: warning: Value stored to 'std' is never read [clang-analyzer-deadcode.DeadStores]
                           std = "palB";
                           ^     ~~~~~~
   drivers/media/tuners/si2157.c:568:4: note: Value stored to 'std' is never read
                           std = "palB";
                           ^     ~~~~~~
   drivers/media/tuners/si2157.c:573:5: warning: Value stored to 'std' is never read [clang-analyzer-deadcode.DeadStores]
                                   std = "secamB";
                                   ^     ~~~~~~~~
   drivers/media/tuners/si2157.c:573:5: note: Value stored to 'std' is never read
                                   std = "secamB";
                                   ^     ~~~~~~~~
   drivers/media/tuners/si2157.c:578:3: warning: Value stored to 'std' is never read [clang-analyzer-deadcode.DeadStores]
                   std = "MN";
                   ^     ~~~~
   drivers/media/tuners/si2157.c:578:3: note: Value stored to 'std' is never read
                   std = "MN";
--
           if (!data->client) {
                ^
   drivers/hwmon/w83793.c:1290:28: note: 'data' initialized to a null pointer value
           struct w83793_data *pos, *data = NULL;
                                     ^~~~
   drivers/hwmon/w83793.c:1299:6: note: Assuming the condition is false
           if (!mutex_trylock(&watchdog_data_mutex))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hwmon/w83793.c:1299:2: note: Taking false branch
           if (!mutex_trylock(&watchdog_data_mutex))
           ^
   drivers/hwmon/w83793.c:1301:2: note: Left side of '&&' is false
           list_for_each_entry(pos, &watchdog_data_list, list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/hwmon/w83793.c:1301:2: note: Taking false branch
           list_for_each_entry(pos, &watchdog_data_list, list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/hwmon/w83793.c:1301:2: note: Loop condition is false.  Exiting loop
           list_for_each_entry(pos, &watchdog_data_list, list) {
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/hwmon/w83793.c:1301:2: note: Loop condition is false. Execution continues on line 1309
           list_for_each_entry(pos, &watchdog_data_list, list) {
           ^
   include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/hwmon/w83793.c:1315:6: note: Assuming 'watchdog_is_open' is 0
           if (!watchdog_is_open)
               ^~~~~~~~~~~~~~~~~
   drivers/hwmon/w83793.c:1315:2: note: Taking true branch
           if (!watchdog_is_open)
           ^
   drivers/hwmon/w83793.c:1321:6: note: 'watchdog_is_open' is 0
           if (watchdog_is_open)
               ^~~~~~~~~~~~~~~~
   drivers/hwmon/w83793.c:1321:2: note: Taking false branch
           if (watchdog_is_open)
           ^
   drivers/hwmon/w83793.c:1325:18: note: Passing null pointer value via 1st parameter 'data'
           watchdog_enable(data);
                           ^~~~
   drivers/hwmon/w83793.c:1325:2: note: Calling 'watchdog_enable'
           watchdog_enable(data);
           ^~~~~~~~~~~~~~~~~~~~~
   drivers/hwmon/w83793.c:1253:7: note: Access to field 'client' results in a dereference of a null pointer (loaded from variable 'data')
           if (!data->client) {
                ^~~~
   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.
   5 warnings generated.
>> drivers/scsi/elx/libefc/efc_node.c:592:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_node.c:592:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
>> drivers/scsi/elx/libefc/efc_node.c:653:2: warning: Value stored to 'efc' is never read [clang-analyzer-deadcode.DeadStores]
           efc = node->efc;
           ^     ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_node.c:653:2: note: Value stored to 'efc' is never read
           efc = node->efc;
           ^     ~~~~~~~~~
   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.
   4 warnings generated.
>> drivers/scsi/elx/libefc/efc_nport.c:442:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_nport.c:442:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   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.
   5 warnings generated.
>> drivers/scsi/elx/libefc/efc_device.c:51:2: warning: Value stored to 'efc' is never read [clang-analyzer-deadcode.DeadStores]
           efc = node->efc;
           ^     ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_device.c:51:2: note: Value stored to 'efc' is never read
           efc = node->efc;
           ^     ~~~~~~~~~
   Suppressed 4 warnings (3 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.
   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.
   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.
   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.
   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.
   13 warnings generated.
   drivers/scsi/isci/request.c:1377:3: warning: Value stored to 'sgl' is never read [clang-analyzer-deadcode.DeadStores]
                   sgl = pio_sgl_next(stp_req);
                   ^     ~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:1377:3: note: Value stored to 'sgl' is never read
                   sgl = pio_sgl_next(stp_req);
                   ^     ~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3377:3: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
                   status = isci_smp_request_build(request);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3377:3: note: Value stored to 'status' is never read
                   status = isci_smp_request_build(request);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3380:3: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
                   status = isci_request_ssp_request_construct(request);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3380:3: note: Value stored to 'status' is never read
                   status = isci_request_ssp_request_construct(request);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3385:3: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
                   status = isci_request_stp_request_construct(request);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3385:3: note: Value stored to 'status' is never read
                   status = isci_request_stp_request_construct(request);
                   ^        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/isci/request.c:3519:3: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
                   status = SCI_SUCCESS;
                   ^        ~~~~~~~~~~~
   drivers/scsi/isci/request.c:3519:3: note: Value stored to 'status' is never read
                   status = SCI_SUCCESS;
                   ^        ~~~~~~~~~~~
   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.
   4 warnings generated.
   drivers/media/tuners/fc0011.c:252:3: warning: Value stored to 'bandwidth' is never read [clang-analyzer-deadcode.DeadStores]
                   bandwidth = 6000;
                   ^           ~~~~
   drivers/media/tuners/fc0011.c:252:3: note: Value stored to 'bandwidth' is never read
                   bandwidth = 6000;
                   ^           ~~~~
   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.
   5 warnings generated.
   drivers/media/tuners/it913x.c:151:26: warning: Value stored to 'pdev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct platform_device *pdev = dev->pdev;
                                   ^~~~   ~~~~~~~~~
   drivers/media/tuners/it913x.c:151:26: note: Value stored to 'pdev' during its initialization is never read
           struct platform_device *pdev = dev->pdev;
                                   ^~~~   ~~~~~~~~~
   drivers/media/tuners/it913x.c:210:26: warning: Value stored to 'pdev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct platform_device *pdev = dev->pdev;
                                   ^~~~   ~~~~~~~~~
   drivers/media/tuners/it913x.c:210:26: note: Value stored to 'pdev' during its initialization is never read
           struct platform_device *pdev = dev->pdev;
                                   ^~~~   ~~~~~~~~~
   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.
   4 warnings generated.
   drivers/media/tuners/r820t.c:1856:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
           rc = r820t_section(priv, compare_iq);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/tuners/r820t.c:1856:2: note: Value stored to 'rc' is never read
           rc = r820t_section(priv, compare_iq);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.

vim +/ctx +1518 drivers/scsi/elx/efct/efct_hw.c

580c0255e4effe James Smart 2021-06-01  1500  
580c0255e4effe James Smart 2021-06-01  1501  static int
580c0255e4effe James Smart 2021-06-01  1502  efct_hw_command_cancel(struct efct_hw *hw)
580c0255e4effe James Smart 2021-06-01  1503  {
580c0255e4effe James Smart 2021-06-01  1504  	unsigned long flags = 0;
580c0255e4effe James Smart 2021-06-01  1505  	int rc = 0;
580c0255e4effe James Smart 2021-06-01  1506  
580c0255e4effe James Smart 2021-06-01  1507  	spin_lock_irqsave(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1508  
580c0255e4effe James Smart 2021-06-01  1509  	/*
580c0255e4effe James Smart 2021-06-01  1510  	 * Manually clean up remaining commands. Note: since this calls
580c0255e4effe James Smart 2021-06-01  1511  	 * efct_hw_command_process(), we'll also process the cmd_pending
580c0255e4effe James Smart 2021-06-01  1512  	 * list, so no need to manually clean that out.
580c0255e4effe James Smart 2021-06-01  1513  	 */
580c0255e4effe James Smart 2021-06-01  1514  	while (!list_empty(&hw->cmd_head)) {
580c0255e4effe James Smart 2021-06-01  1515  		u8		mqe[SLI4_BMBX_SIZE] = { 0 };
580c0255e4effe James Smart 2021-06-01  1516  		struct efct_command_ctx *ctx;
580c0255e4effe James Smart 2021-06-01  1517  
580c0255e4effe James Smart 2021-06-01 @1518  		ctx = list_first_entry(&hw->cmd_head,
580c0255e4effe James Smart 2021-06-01  1519  				       struct efct_command_ctx, list_entry);
580c0255e4effe James Smart 2021-06-01  1520  
580c0255e4effe James Smart 2021-06-01  1521  		efc_log_debug(hw->os, "hung command %08x\n",
580c0255e4effe James Smart 2021-06-01  1522  			      !ctx ? U32_MAX :
580c0255e4effe James Smart 2021-06-01  1523  			      (!ctx->buf ? U32_MAX : *((u32 *)ctx->buf)));
580c0255e4effe James Smart 2021-06-01  1524  		spin_unlock_irqrestore(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1525  		rc = efct_hw_command_process(hw, -1, mqe, SLI4_BMBX_SIZE);
580c0255e4effe James Smart 2021-06-01  1526  		spin_lock_irqsave(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1527  	}
580c0255e4effe James Smart 2021-06-01  1528  
580c0255e4effe James Smart 2021-06-01  1529  	spin_unlock_irqrestore(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1530  
580c0255e4effe James Smart 2021-06-01  1531  	return rc;
580c0255e4effe James Smart 2021-06-01  1532  }
580c0255e4effe James Smart 2021-06-01  1533  

:::::: The code at line 1518 was first introduced by commit
:::::: 580c0255e4effe49b9974044e78a03e76d977618 scsi: elx: efct: RQ buffer, memory pool allocation and deallocation APIs

:::::: TO: James Smart <jsmart2021@gmail.com>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/scsi/elx/efct/efct_hw.c:1518:3: warning: Value stored to 'ctx' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-05-29 18:18 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-05-29 18:18 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 64504 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: James Smart <jsmart2021@gmail.com>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Hannes Reinecke <hare@suse.de>
CC: Daniel Wagner <dwagner@suse.de>
CC: Ram Vegesna <ram.vegesna@broadcom.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   664a393a2663a0f62fc1b18157ccae33dcdbb8c8
commit: ebc076b3eddc807729bd81f7bc48e798a3ddc477 scsi: elx: efct: Tie into kernel Kconfig and build process
date:   12 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 12 months ago
config: s390-randconfig-c005-20220524 (https://download.01.org/0day-ci/archive/20220530/202205300249.0VPxOAZe-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 10c9ecce9f6096e18222a331c5e7d085bd813f75)
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 s390 cross compiling tool for clang build
        # apt-get install binutils-s390x-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ebc076b3eddc807729bd81f7bc48e798a3ddc477
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout ebc076b3eddc807729bd81f7bc48e798a3ddc477
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 clang-analyzer 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           ^~~~~~~~
   drivers/atm/fore200e.c:1234:5: note: Taking true branch
       if (activate) {
       ^
   drivers/atm/fore200e.c:1252:9: note: 'activate' is 1
       if (activate) {
           ^~~~~~~~
   drivers/atm/fore200e.c:1252:5: note: Taking true branch
       if (activate) {
       ^
   drivers/atm/fore200e.c:1259:2: note: 1st function call argument is an uninitialized value
           fore200e->bus->write(*(u32*)&vpvc,         (u32 __iomem *)&entry->cp_entry->cmd.activate_block.vpvc);
           ^                    ~~~~~~~~~~~~
   drivers/atm/fore200e.c:1263:2: warning: 1st function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           fore200e->bus->write(*(u32*)&vpvc,         (u32 __iomem *)&entry->cp_entry->cmd.deactivate_block.vpvc);
           ^
   drivers/atm/fore200e.c:1419:5: note: Assuming 'vcc' is non-null
       ASSERT(vcc);
       ^
   drivers/atm/fore200e.c:85:30: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                                ^~~~~~~
   drivers/atm/fore200e.c:1419:5: note: Taking false branch
       ASSERT(vcc);
       ^
   drivers/atm/fore200e.c:85:26: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                            ^
   drivers/atm/fore200e.c:1422:13: note: Assuming field 'vpi' is >= 0
       ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
               ^
   drivers/atm/fore200e.c:85:32: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                                  ^~~~
   drivers/atm/fore200e.c:1422:12: note: Left side of '&&' is true
       ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
              ^
   drivers/atm/fore200e.c:1422:32: note: Assuming the condition is true
       ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
                                  ^
   drivers/atm/fore200e.c:85:32: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                                  ^~~~
   drivers/atm/fore200e.c:1422:5: note: Taking false branch
       ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
       ^
   drivers/atm/fore200e.c:85:26: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                            ^
   drivers/atm/fore200e.c:1423:13: note: Assuming field 'vci' is >= 0
       ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
               ^
   drivers/atm/fore200e.c:85:32: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                                  ^~~~
   drivers/atm/fore200e.c:1423:12: note: Left side of '&&' is true
       ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
              ^
   drivers/atm/fore200e.c:1423:32: note: Assuming the condition is true
       ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
                                  ^
   drivers/atm/fore200e.c:85:32: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                                  ^~~~
   drivers/atm/fore200e.c:1423:5: note: Taking false branch
       ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
       ^
   drivers/atm/fore200e.c:85:26: note: expanded from macro 'ASSERT'
   #define ASSERT(expr)     if (!(expr)) { \
                            ^
   drivers/atm/fore200e.c:1425:5: note: Loop condition is false.  Exiting loop
       DPRINTK(2, "closing %d.%d.%d:%d\n", vcc->itf, vcc->vpi, vcc->vci, fore200e_atm2fore_aal(vcc->qos.aal));
       ^
   drivers/atm/fore200e.c:71:42: note: expanded from macro 'DPRINTK'
   #define DPRINTK(level, format, args...)  do {} while (0)
                                            ^
   drivers/atm/fore200e.c:1429:5: note: Calling 'fore200e_activate_vcin'
       fore200e_activate_vcin(fore200e, 0, vcc, 0);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/atm/fore200e.c:1234:9: note: 'activate' is 0
       if (activate) {
           ^~~~~~~~
   drivers/atm/fore200e.c:1234:5: note: Taking false branch
       if (activate) {
       ^
   drivers/atm/fore200e.c:1252:9: note: 'activate' is 0
       if (activate) {
           ^~~~~~~~
   drivers/atm/fore200e.c:1252:5: note: Taking false branch
       if (activate) {
       ^
   drivers/atm/fore200e.c:1263:2: note: 1st function call argument is an uninitialized value
           fore200e->bus->write(*(u32*)&vpvc,         (u32 __iomem *)&entry->cp_entry->cmd.deactivate_block.vpvc);
           ^                    ~~~~~~~~~~~~
   Suppressed 25 warnings (13 in non-user code, 12 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   22 warnings generated.
>> drivers/scsi/elx/efct/efct_hw.c:1518:3: warning: Value stored to 'ctx' is never read [clang-analyzer-deadcode.DeadStores]
                   ctx = list_first_entry(&hw->cmd_head,
                   ^
   drivers/scsi/elx/efct/efct_hw.c:1518:3: note: Value stored to 'ctx' is never read
>> drivers/scsi/elx/efct/efct_hw.c:1593:29: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
                   io->wq = hw->wq_cpu_array[raw_smp_processor_id()];
                                             ^
   arch/s390/include/asm/smp.h:15:32: note: expanded from macro 'raw_smp_processor_id'
   #define raw_smp_processor_id()  (S390_lowcore.cpu_nr)
                                   ^
   drivers/scsi/elx/efct/efct_hw.c:2709:8: note: Calling 'efct_hw_io_alloc'
           hio = efct_hw_io_alloc(hw);
                 ^~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw.c:1614:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&hw->io_lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/scsi/elx/efct/efct_hw.c:1614:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&hw->io_lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/scsi/elx/efct/efct_hw.c:1615:7: note: Calling '_efct_hw_io_alloc'
           io = _efct_hw_io_alloc(hw);
                ^~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw.c:1583:6: note: Assuming the condition is true
           if (!list_empty(&hw->io_free)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw.c:1583:2: note: Taking true branch
           if (!list_empty(&hw->io_free)) {
           ^
   drivers/scsi/elx/efct/efct_hw.c:1584:8: note: Left side of '&&' is false
                   io = list_first_entry(&hw->io_free, struct efct_hw_io,
                        ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/scsi/elx/efct/efct_hw.c:1584:8: note: Taking false branch
                   io = list_first_entry(&hw->io_free, struct efct_hw_io,
                        ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/scsi/elx/efct/efct_hw.c:1584:8: note: Loop condition is false.  Exiting loop
                   io = list_first_entry(&hw->io_free, struct efct_hw_io,
                        ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/scsi/elx/efct/efct_hw.c:1588:6: note: 'io' is non-null
           if (io) {
               ^~
   drivers/scsi/elx/efct/efct_hw.c:1588:2: note: Taking true branch
           if (io) {
           ^
   drivers/scsi/elx/efct/efct_hw.c:1593:29: note: Dereference of null pointer
                   io->wq = hw->wq_cpu_array[raw_smp_processor_id()];
                                             ^
   arch/s390/include/asm/smp.h:15:32: note: expanded from macro 'raw_smp_processor_id'
   #define raw_smp_processor_id()  (S390_lowcore.cpu_nr)
                                   ^~~~~~~~~~~~~~~~~~~~~
--
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   drivers/ata/libata-eh.c:777:2: note: Dereference of null pointer
           DEFINE_WAIT(wait);
           ^
   include/linux/wait.h:1153:27: note: expanded from macro 'DEFINE_WAIT'
   #define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC'
                   .private        = current,                                      \
                                     ^~~~~~~
   arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current'
   #define current ((struct task_struct *const)S390_lowcore.current_task)
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   Suppressed 21 warnings (9 in non-user code, 12 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.
   8 warnings generated.
   drivers/usb/misc/yurex.c:196:2: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
           DEFINE_WAIT(wait);
           ^
   include/linux/wait.h:1153:27: note: expanded from macro 'DEFINE_WAIT'
   #define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC'
                   .private        = current,                                      \
                                     ^~~~~~~
   arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current'
   #define current ((struct task_struct *const)S390_lowcore.current_task)
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   drivers/usb/misc/yurex.c:196:2: note: Dereference of null pointer
           DEFINE_WAIT(wait);
           ^
   include/linux/wait.h:1153:27: note: expanded from macro 'DEFINE_WAIT'
   #define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC'
                   .private        = current,                                      \
                                     ^~~~~~~
   arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current'
   #define current ((struct task_struct *const)S390_lowcore.current_task)
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   drivers/usb/misc/yurex.c:435:2: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
           DEFINE_WAIT(wait);
           ^
   include/linux/wait.h:1153:27: note: expanded from macro 'DEFINE_WAIT'
   #define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC'
                   .private        = current,                                      \
                                     ^~~~~~~
   arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current'
   #define current ((struct task_struct *const)S390_lowcore.current_task)
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   drivers/usb/misc/yurex.c:435:2: note: Dereference of null pointer
           DEFINE_WAIT(wait);
           ^
   include/linux/wait.h:1153:27: note: expanded from macro 'DEFINE_WAIT'
   #define DEFINE_WAIT(name) DEFINE_WAIT_FUNC(name, autoremove_wake_function)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/wait.h:1148:14: note: expanded from macro 'DEFINE_WAIT_FUNC'
                   .private        = current,                                      \
                                     ^~~~~~~
   arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current'
   #define current ((struct task_struct *const)S390_lowcore.current_task)
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   25 warnings generated.
   drivers/scsi/pm8001/pm8001_init.c:410:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
                   rc = -ENOMEM;
                   ^    ~~~~~~~
   drivers/scsi/pm8001/pm8001_init.c:410:3: note: Value stored to 'rc' is never read
                   rc = -ENOMEM;
                   ^    ~~~~~~~
   Suppressed 24 warnings (12 in non-user code, 12 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.
   20 warnings generated.
>> drivers/scsi/elx/efct/efct_hw_queues.c:196:23: warning: Access to field 'hw' results in a dereference of an undefined pointer value [clang-analyzer-core.NullDereference]
           struct efct_hw *hw = eqs[0]->hw;
                                ^
   drivers/scsi/elx/efct/efct_hw_queues.c:32:14: note: Assuming 'i' is >= field 'n_eq'
           for (i = 0; i < hw->config.n_eq; i++) {
                       ^~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw_queues.c:32:2: note: Loop condition is false. Execution continues on line 73
           for (i = 0; i < hw->config.n_eq; i++) {
           ^
   drivers/scsi/elx/efct/efct_hw_queues.c:73:6: note: Calling 'efct_hw_new_cq_set'
           if (efct_hw_new_cq_set(eqs, cqs, i, hw->num_qentries[SLI4_QTYPE_CQ])) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_hw_queues.c:196:23: note: Access to field 'hw' results in a dereference of an undefined pointer value
           struct efct_hw *hw = eqs[0]->hw;
                                ^~~~~~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   36 warnings generated.
>> drivers/scsi/elx/efct/efct_lio.c:1156:15: warning: Value stored to 'efct' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efct *efct = nport->efc->base;
                        ^~~~   ~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1156:15: note: Value stored to 'efct' during its initialization is never read
           struct efct *efct = nport->efc->base;
                        ^~~~   ~~~~~~~~~~~~~~~~
>> drivers/scsi/elx/efct/efct_lio.c:1366:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "FROM_INITIATOR";
                   ^      ~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1366:3: note: Value stored to 'ddir' is never read
                   ddir = "FROM_INITIATOR";
                   ^      ~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1370:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "TO_INITIATOR";
                   ^      ~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1370:3: note: Value stored to 'ddir' is never read
                   ddir = "TO_INITIATOR";
                   ^      ~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1374:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "BIDIR";
                   ^      ~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1374:3: note: Value stored to 'ddir' is never read
                   ddir = "BIDIR";
                   ^      ~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1378:3: warning: Value stored to 'ddir' is never read [clang-analyzer-deadcode.DeadStores]
                   ddir = "NONE";
                   ^      ~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1378:3: note: Value stored to 'ddir' is never read
                   ddir = "NONE";
                   ^      ~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: warning: Access to field 'generate_node_acls' results in a dereference of a null pointer (loaded from variable 'a') [clang-analyzer-core.NullDereference]
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1515:10: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           a->name = val;                                                    \
           ~       ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Left side of '&&' is false
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:29: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
                                      ^
   include/linux/kernel.h:704:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Taking false branch
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:29: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
                                      ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Loop condition is false.  Exiting loop
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:29: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
                                      ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: 'tpg' initialized to a null pointer value
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1498:2: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg *tpg = container_of(se_tpg,                   \
           ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: 'a' initialized to a null pointer value
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1500:2: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           struct efct_lio_tpg_attrib *a = &tpg->tpg_attrib;                 \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Assuming 'ret' is >= 0
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
   ^
   drivers/scsi/elx/efct/efct_lio.c:1505:6: note: expanded from macro 'DEF_EFCT_TPG_ATTRIB'
           if (ret < 0) {                                                    \
               ^~~~~~~
   drivers/scsi/elx/efct/efct_lio.c:1521:1: note: Taking false branch
   DEF_EFCT_TPG_ATTRIB(generate_node_acls);
--
   include/scsi/scsi_device.h:451:31: note: expanded from macro 'scsi_execute'
           BUILD_BUG_ON((sense) != NULL &&                                 \
                                        ^
   include/scsi/scsi_device.h:462:9: note: Taking false branch
           return scsi_execute(sdev, cmd, data_direction, buffer,
                  ^
   include/scsi/scsi_device.h:451:2: note: expanded from macro 'scsi_execute'
           BUILD_BUG_ON((sense) != NULL &&                                 \
           ^
   include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   include/scsi/scsi_device.h:462:9: note: Loop condition is false.  Exiting loop
           return scsi_execute(sdev, cmd, data_direction, buffer,
                  ^
   include/scsi/scsi_device.h:451:2: note: expanded from macro 'scsi_execute'
           BUILD_BUG_ON((sense) != NULL &&                                 \
           ^
   include/linux/build_bug.h:50:2: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   include/scsi/scsi_device.h:462:9: note: Calling '__scsi_execute'
           return scsi_execute(sdev, cmd, data_direction, buffer,
                  ^
   include/scsi/scsi_device.h:453:2: note: expanded from macro 'scsi_execute'
           __scsi_execute(sdev, cmd, data_direction, buffer, bufflen,      \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:217:4: note: 'data_direction' is not equal to DMA_TO_DEVICE
                           data_direction == DMA_TO_DEVICE ?
                           ^~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:217:4: note: '?' condition is false
   drivers/scsi/scsi_lib.c:219:4: note: '?' condition is false
                           rq_flags & RQF_PM ? BLK_MQ_REQ_PM : 0);
                           ^
   drivers/scsi/scsi_lib.c:220:2: note: Taking true branch
           if (IS_ERR(req))
           ^
   drivers/scsi/scsi_lib.c:221:3: note: Returning without writing to 'sshdr->response_code'
                   return PTR_ERR(req);
                   ^
   include/scsi/scsi_device.h:462:9: note: Returning from '__scsi_execute'
           return scsi_execute(sdev, cmd, data_direction, buffer,
                  ^
   include/scsi/scsi_device.h:453:2: note: expanded from macro 'scsi_execute'
           __scsi_execute(sdev, cmd, data_direction, buffer, bufflen,      \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/scsi/scsi_device.h:462:2: note: Returning without writing to 'sshdr->response_code'
           return scsi_execute(sdev, cmd, data_direction, buffer,
           ^
   drivers/scsi/scsi_lib.c:2139:11: note: Returning from 'scsi_execute_req'
           result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buffer, len,
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:2141:6: note: Assuming 'result' is >= 0
           if (result < 0)
               ^~~~~~~~~~
   drivers/scsi/scsi_lib.c:2141:2: note: Taking false branch
           if (result < 0)
           ^
   drivers/scsi/scsi_lib.c:2149:2: note: Taking true branch
           if (!scsi_status_is_good(result)) {
           ^
   drivers/scsi/scsi_lib.c:2150:7: note: Calling 'scsi_sense_valid'
                   if (scsi_sense_valid(sshdr)) {
                       ^~~~~~~~~~~~~~~~~~~~~~~
   include/scsi/scsi_common.h:63:7: note: 'sshdr' is non-null
           if (!sshdr)
                ^~~~~
   include/scsi/scsi_common.h:63:2: note: Taking false branch
           if (!sshdr)
           ^
   include/scsi/scsi_common.h:66:31: note: The left operand of '&' is a garbage value
           return (sshdr->response_code & 0x70) == 0x70;
                   ~~~~~~~~~~~~~~~~~~~~ ^
   Suppressed 19 warnings (7 in non-user code, 12 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.
   21 warnings generated.
>> drivers/scsi/elx/efct/efct_unsol.c:147:27: warning: Value stored to 'fchdr' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
                   struct fc_frame_header  *fchdr = seq->header->dma.virt;
                                            ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/elx/efct/efct_unsol.c:147:27: note: Value stored to 'fchdr' during its initialization is never read
                   struct fc_frame_header  *fchdr = seq->header->dma.virt;
                                            ^~~~~   ~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/elx/efct/efct_unsol.c:320:15: warning: Value stored to 'efct' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efct *efct = node->efct;
                        ^~~~   ~~~~~~~~~~
   drivers/scsi/elx/efct/efct_unsol.c:320:15: note: Value stored to 'efct' during its initialization is never read
           struct efct *efct = node->efct;
                        ^~~~   ~~~~~~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   21 warnings generated.
>> drivers/scsi/elx/libefc/efc_cmds.c:36:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_cmds.c:36:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_cmds.c:314:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = domain->efc;
                       ^~~   ~~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_cmds.c:314:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = domain->efc;
                       ^~~   ~~~~~~~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   21 warnings generated.
>> drivers/scsi/elx/libefc/efc_fabric.c:77:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_fabric.c:77:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
>> drivers/scsi/elx/libefc/efc_fabric.c:398:19: warning: Value stored to 'node' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc_node *node = ctx->app;
                            ^~~~   ~~~~~~~~
   drivers/scsi/elx/libefc/efc_fabric.c:398:19: note: Value stored to 'node' during its initialization is never read
           struct efc_node *node = ctx->app;
                            ^~~~   ~~~~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   22 warnings generated.
   drivers/mtd/ubi/block.c:124:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcpy(buf, val);
           ^~~~~~
   drivers/mtd/ubi/block.c:124:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
           strcpy(buf, val);
           ^~~~~~
   drivers/mtd/ubi/block.c:144:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                           strcpy(param->name, tokens[1]);
                           ^~~~~~
   drivers/mtd/ubi/block.c:144:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                           strcpy(param->name, tokens[1]);
                           ^~~~~~
   drivers/mtd/ubi/block.c:149:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                   strcpy(param->name, tokens[0]);
                   ^~~~~~
   drivers/mtd/ubi/block.c:149:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                   strcpy(param->name, tokens[0]);
                   ^~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   25 warnings generated.
   drivers/mtd/ubi/gluebi.c:323:3: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
                   err_msg("gluebi MTD device %d form UBI device %d volume %d already exists",
                   ^
   drivers/mtd/ubi/gluebi.c:32:9: note: expanded from macro 'err_msg'
                  current->pid, __func__, ##__VA_ARGS__)
                  ^
   drivers/mtd/ubi/gluebi.c:449:2: note: Control jumps to 'case UBI_VOLUME_ADDED:'  at line 450
           switch (l) {
           ^
   drivers/mtd/ubi/gluebi.c:451:3: note: Calling 'gluebi_create'
                   gluebi_create(&nt->di, &nt->vi);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:284:11: note: Calling 'kzalloc'
           gluebi = kzalloc(sizeof(struct gluebi_device), GFP_KERNEL);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:686:9: note: Calling 'kmalloc'
           return kmalloc(size, flags | __GFP_ZERO);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:544:2: note: Taking false branch
           if (__builtin_constant_p(size)) {
           ^
   include/linux/slab.h:561:2: note: Returning pointer, which participates in a condition later
           return __kmalloc(size, flags);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:686:9: note: Returning from 'kmalloc'
           return kmalloc(size, flags | __GFP_ZERO);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/slab.h:686:2: note: Returning pointer, which participates in a condition later
           return kmalloc(size, flags | __GFP_ZERO);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:284:11: note: Returning from 'kzalloc'
           gluebi = kzalloc(sizeof(struct gluebi_device), GFP_KERNEL);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:285:6: note: Assuming 'gluebi' is non-null
           if (!gluebi)
               ^~~~~~~
   drivers/mtd/ubi/gluebi.c:285:2: note: Taking false branch
           if (!gluebi)
           ^
   drivers/mtd/ubi/gluebi.c:289:14: note: Calling 'kmemdup'
           mtd->name = kmemdup(vi->name, vi->name_len + 1, GFP_KERNEL);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:266:33: note: Left side of '&&' is false
           if (__builtin_constant_p(size) && p_size < size)
                                          ^
   include/linux/fortify-string.h:268:6: note: Assuming 'p_size' is >= 'size'
           if (p_size < size)
               ^~~~~~~~~~~~~
   include/linux/fortify-string.h:268:2: note: Taking false branch
           if (p_size < size)
           ^
   include/linux/fortify-string.h:270:2: note: Returning pointer, which participates in a condition later
           return __real_kmemdup(p, size, gfp);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:289:14: note: Returning from 'kmemdup'
           mtd->name = kmemdup(vi->name, vi->name_len + 1, GFP_KERNEL);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:290:6: note: Assuming field 'name' is non-null
           if (!mtd->name) {
               ^~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:290:2: note: Taking false branch
           if (!mtd->name) {
           ^
   drivers/mtd/ubi/gluebi.c:298:6: note: Assuming field 'ro_mode' is not equal to 0
           if (!di->ro_mode)
               ^~~~~~~~~~~~
   drivers/mtd/ubi/gluebi.c:298:2: note: Taking false branch
           if (!di->ro_mode)
           ^
   drivers/mtd/ubi/gluebi.c:314:6: note: Assuming field 'vol_type' is not equal to UBI_DYNAMIC_VOLUME
           if (vi->vol_type == UBI_DYNAMIC_VOLUME)
--
           ^
   drivers/usb/gadget/composite.c:1695:2: note: Control jumps to 'case 6:'  at line 1698
           switch (ctrl->bRequest) {
           ^
   drivers/usb/gadget/composite.c:1699:7: note: Assuming field 'bRequestType' is equal to USB_DIR_IN
                   if (ctrl->bRequestType != USB_DIR_IN)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/composite.c:1699:3: note: Taking false branch
                   if (ctrl->bRequestType != USB_DIR_IN)
                   ^
   drivers/usb/gadget/composite.c:1701:3: note: Control jumps to 'case 2:'  at line 1738
                   switch (w_value >> 8) {
                   ^
   drivers/usb/gadget/composite.c:1739:12: note: Calling 'config_desc'
                           value = config_desc(cdev, w_value);
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/composite.c:560:6: note: Assuming field 'speed' is >= USB_SPEED_SUPER
           if (gadget->speed >= USB_SPEED_SUPER)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/composite.c:560:2: note: Taking true branch
           if (gadget->speed >= USB_SPEED_SUPER)
           ^
   drivers/usb/gadget/composite.c:578:6: note: Assuming 'c' is null
           if (c)
               ^
   drivers/usb/gadget/composite.c:578:2: note: Taking false branch
           if (c)
           ^
   drivers/usb/gadget/composite.c:581:10: note: Value assigned to 'pos'
           while ((pos = pos->next) !=  &cdev->configs) {
                   ^~~~~~~~~~~~~~~
   drivers/usb/gadget/composite.c:581:2: note: Loop condition is true.  Entering loop body
           while ((pos = pos->next) !=  &cdev->configs) {
           ^
   drivers/usb/gadget/composite.c:582:7: note: Left side of '&&' is false
                   c = list_entry(pos, typeof(*c), list);
                       ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/usb/gadget/composite.c:582:7: note: Taking false branch
                   c = list_entry(pos, typeof(*c), list);
                       ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:308:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/usb/gadget/composite.c:582:7: note: Loop condition is false.  Exiting loop
                   c = list_entry(pos, typeof(*c), list);
                       ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:704:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/usb/gadget/composite.c:585:7: note: Assuming 'c' is equal to field 'os_desc_config'
                   if (c == cdev->os_desc_config)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/gadget/composite.c:585:3: note: Taking true branch
                   if (c == cdev->os_desc_config)
                   ^
   drivers/usb/gadget/composite.c:586:4: note:  Execution continues on line 581
                           continue;
                           ^
   drivers/usb/gadget/composite.c:581:16: note: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'pos')
           while ((pos = pos->next) !=  &cdev->configs) {
                         ^~~
   Suppressed 18 warnings (6 in non-user code, 12 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.
   21 warnings generated.
>> drivers/scsi/elx/libefc/efc_node.c:592:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_node.c:592:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = node->efc;
                       ^~~   ~~~~~~~~~
>> drivers/scsi/elx/libefc/efc_node.c:653:2: warning: Value stored to 'efc' is never read [clang-analyzer-deadcode.DeadStores]
           efc = node->efc;
           ^     ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_node.c:653:2: note: Value stored to 'efc' is never read
           efc = node->efc;
           ^     ~~~~~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   20 warnings generated.
>> drivers/scsi/elx/libefc/efc_nport.c:442:14: warning: Value stored to 'efc' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   drivers/scsi/elx/libefc/efc_nport.c:442:14: note: Value stored to 'efc' during its initialization is never read
           struct efc *efc = nport->efc;
                       ^~~   ~~~~~~~~~~
   Suppressed 19 warnings (7 in non-user code, 12 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.
   21 warnings generated.
>> drivers/scsi/elx/libefc/efc_device.c:51:2: warning: Value stored to 'efc' is never read [clang-analyzer-deadcode.DeadStores]
           efc = node->efc;
           ^     ~~~~~~~~~
   drivers/scsi/elx/libefc/efc_device.c:51:2: note: Value stored to 'efc' is never read
           efc = node->efc;
           ^     ~~~~~~~~~
   Suppressed 20 warnings (7 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   18 warnings generated.
   Suppressed 18 warnings (6 in non-user code, 12 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.
   19 warnings generated.
   Suppressed 19 warnings (7 in non-user code, 12 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.
   24 warnings generated.
   drivers/scsi/bfa/bfad_im.c:223:3: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
                   set_current_state(TASK_UNINTERRUPTIBLE);
                   ^
   include/linux/sched.h:141:3: note: expanded from macro 'set_current_state'
                   current->task_state_change = _THIS_IP_;         \
                   ^~~~~~~
   arch/s390/include/asm/current.h:17:45: note: expanded from macro 'current'
   #define current ((struct task_struct *const)S390_lowcore.current_task)
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/lowcore.h:192:22: note: expanded from macro 'S390_lowcore'
   #define S390_lowcore (*((struct lowcore *) 0))
                        ^
   drivers/scsi/bfa/bfad_im.c:201:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&bfad->bfad_lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 'raw_spin_lock_irqsave'
           do {                                            \
           ^
   drivers/scsi/bfa/bfad_im.c:201:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&bfad->bfad_lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   drivers/scsi/bfa/bfad_im.c:203:6: note: Assuming 'hal_io' is non-null
           if (!hal_io) {
               ^~~~~~~
   drivers/scsi/bfa/bfad_im.c:203:2: note: Taking false branch
           if (!hal_io) {
           ^
   drivers/scsi/bfa/bfad_im.c:208:6: note: Assuming 'cmnd' is equal to field 'dio'
           if (hal_io->dio != (struct bfad_ioim_s *) cmnd) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/bfa/bfad_im.c:208:2: note: Taking false branch
           if (hal_io->dio != (struct bfad_ioim_s *) cmnd) {
           ^
   drivers/scsi/bfa/bfad_im.c:214:2: note: Assuming 'bfa_log_level' is not equal to 4
           BFA_LOG(KERN_INFO, bfad, bfa_log_level,
           ^
   drivers/scsi/bfa/bfad_drv.h:285:7: note: expanded from macro 'BFA_LOG'
           if (((mask) == 4) || (level[1] <= '4'))                         \
                ^~~~~~~~~~~
   drivers/scsi/bfa/bfad_im.c:214:2: note: Left side of '||' is false
           BFA_LOG(KERN_INFO, bfad, bfa_log_level,
           ^
   drivers/scsi/bfa/bfad_drv.h:285:6: note: expanded from macro 'BFA_LOG'
           if (((mask) == 4) || (level[1] <= '4'))                         \
               ^
   drivers/scsi/bfa/bfad_im.c:214:2: note: Taking false branch
           BFA_LOG(KERN_INFO, bfad, bfa_log_level,
           ^
   drivers/scsi/bfa/bfad_drv.h:285:2: note: expanded from macro 'BFA_LOG'
           if (((mask) == 4) || (level[1] <= '4'))                         \
           ^
   drivers/scsi/bfa/bfad_im.c:214:2: note: Loop condition is false.  Exiting loop
           BFA_LOG(KERN_INFO, bfad, bfa_log_level,
           ^
   drivers/scsi/bfa/bfad_drv.h:283:52: note: expanded from macro 'BFA_LOG'
   #define BFA_LOG(level, bfad, mask, fmt, arg...)                         \
                                                                           ^
   drivers/scsi/bfa/bfad_im.c:222:2: note: Loop condition is true.  Entering loop body
           while ((struct bfa_ioim_s *) cmnd->host_scribble == hal_io) {
           ^
   drivers/scsi/bfa/bfad_im.c:223:3: note: Taking false branch
                   set_current_state(TASK_UNINTERRUPTIBLE);
                   ^
   include/linux/sched.h:140:3: note: expanded from macro 'set_current_state'
                   WARN_ON_ONCE(is_special_task_state(state_value));\
                   ^
   include/asm-generic/bug.h:103:2: note: expanded from macro 'WARN_ON_ONCE'
           if (unlikely(__ret_warn_on))                            \
           ^
   drivers/scsi/bfa/bfad_im.c:223:3: note: Dereference of null pointer
                   set_current_state(TASK_UNINTERRUPTIBLE);

vim +/ctx +1518 drivers/scsi/elx/efct/efct_hw.c

580c0255e4effe James Smart 2021-06-01  1500  
580c0255e4effe James Smart 2021-06-01  1501  static int
580c0255e4effe James Smart 2021-06-01  1502  efct_hw_command_cancel(struct efct_hw *hw)
580c0255e4effe James Smart 2021-06-01  1503  {
580c0255e4effe James Smart 2021-06-01  1504  	unsigned long flags = 0;
580c0255e4effe James Smart 2021-06-01  1505  	int rc = 0;
580c0255e4effe James Smart 2021-06-01  1506  
580c0255e4effe James Smart 2021-06-01  1507  	spin_lock_irqsave(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1508  
580c0255e4effe James Smart 2021-06-01  1509  	/*
580c0255e4effe James Smart 2021-06-01  1510  	 * Manually clean up remaining commands. Note: since this calls
580c0255e4effe James Smart 2021-06-01  1511  	 * efct_hw_command_process(), we'll also process the cmd_pending
580c0255e4effe James Smart 2021-06-01  1512  	 * list, so no need to manually clean that out.
580c0255e4effe James Smart 2021-06-01  1513  	 */
580c0255e4effe James Smart 2021-06-01  1514  	while (!list_empty(&hw->cmd_head)) {
580c0255e4effe James Smart 2021-06-01  1515  		u8		mqe[SLI4_BMBX_SIZE] = { 0 };
580c0255e4effe James Smart 2021-06-01  1516  		struct efct_command_ctx *ctx;
580c0255e4effe James Smart 2021-06-01  1517  
580c0255e4effe James Smart 2021-06-01 @1518  		ctx = list_first_entry(&hw->cmd_head,
580c0255e4effe James Smart 2021-06-01  1519  				       struct efct_command_ctx, list_entry);
580c0255e4effe James Smart 2021-06-01  1520  
580c0255e4effe James Smart 2021-06-01  1521  		efc_log_debug(hw->os, "hung command %08x\n",
580c0255e4effe James Smart 2021-06-01  1522  			      !ctx ? U32_MAX :
580c0255e4effe James Smart 2021-06-01  1523  			      (!ctx->buf ? U32_MAX : *((u32 *)ctx->buf)));
580c0255e4effe James Smart 2021-06-01  1524  		spin_unlock_irqrestore(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1525  		rc = efct_hw_command_process(hw, -1, mqe, SLI4_BMBX_SIZE);
580c0255e4effe James Smart 2021-06-01  1526  		spin_lock_irqsave(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1527  	}
580c0255e4effe James Smart 2021-06-01  1528  
580c0255e4effe James Smart 2021-06-01  1529  	spin_unlock_irqrestore(&hw->cmd_lock, flags);
580c0255e4effe James Smart 2021-06-01  1530  
580c0255e4effe James Smart 2021-06-01  1531  	return rc;
580c0255e4effe James Smart 2021-06-01  1532  }
580c0255e4effe James Smart 2021-06-01  1533  
580c0255e4effe James Smart 2021-06-01  1534  static void
580c0255e4effe James Smart 2021-06-01  1535  efct_mbox_rsp_cb(struct efct_hw *hw, int status, u8 *mqe, void *arg)
580c0255e4effe James Smart 2021-06-01  1536  {
580c0255e4effe James Smart 2021-06-01  1537  	struct efct_mbox_rqst_ctx *ctx = arg;
580c0255e4effe James Smart 2021-06-01  1538  
580c0255e4effe James Smart 2021-06-01  1539  	if (ctx) {
580c0255e4effe James Smart 2021-06-01  1540  		if (ctx->callback)
580c0255e4effe James Smart 2021-06-01  1541  			(*ctx->callback)(hw->os->efcport, status, mqe,
580c0255e4effe James Smart 2021-06-01  1542  					 ctx->arg);
580c0255e4effe James Smart 2021-06-01  1543  
580c0255e4effe James Smart 2021-06-01  1544  		mempool_free(ctx, hw->mbox_rqst_pool);
580c0255e4effe James Smart 2021-06-01  1545  	}
580c0255e4effe James Smart 2021-06-01  1546  }
580c0255e4effe James Smart 2021-06-01  1547  
580c0255e4effe James Smart 2021-06-01  1548  int
580c0255e4effe James Smart 2021-06-01  1549  efct_issue_mbox_rqst(void *base, void *cmd, void *cb, void *arg)
580c0255e4effe James Smart 2021-06-01  1550  {
580c0255e4effe James Smart 2021-06-01  1551  	struct efct_mbox_rqst_ctx *ctx;
580c0255e4effe James Smart 2021-06-01  1552  	struct efct *efct = base;
580c0255e4effe James Smart 2021-06-01  1553  	struct efct_hw *hw = &efct->hw;
580c0255e4effe James Smart 2021-06-01  1554  	int rc;
580c0255e4effe James Smart 2021-06-01  1555  
580c0255e4effe James Smart 2021-06-01  1556  	/*
580c0255e4effe James Smart 2021-06-01  1557  	 * Allocate a callback context (which includes the mbox cmd buffer),
580c0255e4effe James Smart 2021-06-01  1558  	 * we need this to be persistent as the mbox cmd submission may be
580c0255e4effe James Smart 2021-06-01  1559  	 * queued and executed later execution.
580c0255e4effe James Smart 2021-06-01  1560  	 */
580c0255e4effe James Smart 2021-06-01  1561  	ctx = mempool_alloc(hw->mbox_rqst_pool, GFP_ATOMIC);
580c0255e4effe James Smart 2021-06-01  1562  	if (!ctx)
580c0255e4effe James Smart 2021-06-01  1563  		return -EIO;
580c0255e4effe James Smart 2021-06-01  1564  
580c0255e4effe James Smart 2021-06-01  1565  	ctx->callback = cb;
580c0255e4effe James Smart 2021-06-01  1566  	ctx->arg = arg;
580c0255e4effe James Smart 2021-06-01  1567  
580c0255e4effe James Smart 2021-06-01  1568  	rc = efct_hw_command(hw, cmd, EFCT_CMD_NOWAIT, efct_mbox_rsp_cb, ctx);
580c0255e4effe James Smart 2021-06-01  1569  	if (rc) {
580c0255e4effe James Smart 2021-06-01  1570  		efc_log_err(efct, "issue mbox rqst failure rc:%d\n", rc);
580c0255e4effe James Smart 2021-06-01  1571  		mempool_free(ctx, hw->mbox_rqst_pool);
580c0255e4effe James Smart 2021-06-01  1572  		return -EIO;
580c0255e4effe James Smart 2021-06-01  1573  	}
580c0255e4effe James Smart 2021-06-01  1574  
580c0255e4effe James Smart 2021-06-01  1575  	return 0;
580c0255e4effe James Smart 2021-06-01  1576  }
63de51327a64c7 James Smart 2021-06-01  1577  
63de51327a64c7 James Smart 2021-06-01  1578  static inline struct efct_hw_io *
63de51327a64c7 James Smart 2021-06-01  1579  _efct_hw_io_alloc(struct efct_hw *hw)
63de51327a64c7 James Smart 2021-06-01  1580  {
63de51327a64c7 James Smart 2021-06-01  1581  	struct efct_hw_io *io = NULL;
63de51327a64c7 James Smart 2021-06-01  1582  
63de51327a64c7 James Smart 2021-06-01  1583  	if (!list_empty(&hw->io_free)) {
63de51327a64c7 James Smart 2021-06-01  1584  		io = list_first_entry(&hw->io_free, struct efct_hw_io,
63de51327a64c7 James Smart 2021-06-01  1585  				      list_entry);
63de51327a64c7 James Smart 2021-06-01  1586  		list_del(&io->list_entry);
63de51327a64c7 James Smart 2021-06-01  1587  	}
63de51327a64c7 James Smart 2021-06-01  1588  	if (io) {
63de51327a64c7 James Smart 2021-06-01  1589  		INIT_LIST_HEAD(&io->list_entry);
63de51327a64c7 James Smart 2021-06-01  1590  		list_add_tail(&io->list_entry, &hw->io_inuse);
63de51327a64c7 James Smart 2021-06-01  1591  		io->state = EFCT_HW_IO_STATE_INUSE;
63de51327a64c7 James Smart 2021-06-01  1592  		io->abort_reqtag = U32_MAX;
63de51327a64c7 James Smart 2021-06-01 @1593  		io->wq = hw->wq_cpu_array[raw_smp_processor_id()];
63de51327a64c7 James Smart 2021-06-01  1594  		if (!io->wq) {
63de51327a64c7 James Smart 2021-06-01  1595  			efc_log_err(hw->os, "WQ not assigned for cpu:%d\n",
63de51327a64c7 James Smart 2021-06-01  1596  				    raw_smp_processor_id());
63de51327a64c7 James Smart 2021-06-01  1597  			io->wq = hw->hw_wq[0];
63de51327a64c7 James Smart 2021-06-01  1598  		}
63de51327a64c7 James Smart 2021-06-01  1599  		kref_init(&io->ref);
63de51327a64c7 James Smart 2021-06-01  1600  		io->release = efct_hw_io_free_internal;
63de51327a64c7 James Smart 2021-06-01  1601  	} else {
63de51327a64c7 James Smart 2021-06-01  1602  		atomic_add(1, &hw->io_alloc_failed_count);
63de51327a64c7 James Smart 2021-06-01  1603  	}
63de51327a64c7 James Smart 2021-06-01  1604  
63de51327a64c7 James Smart 2021-06-01  1605  	return io;
63de51327a64c7 James Smart 2021-06-01  1606  }
63de51327a64c7 James Smart 2021-06-01  1607  

:::::: The code at line 1518 was first introduced by commit
:::::: 580c0255e4effe49b9974044e78a03e76d977618 scsi: elx: efct: RQ buffer, memory pool allocation and deallocation APIs

:::::: TO: James Smart <jsmart2021@gmail.com>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-05-29 18:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-03  2:36 drivers/scsi/elx/efct/efct_hw.c:1518:3: warning: Value stored to 'ctx' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
2022-05-29 18:18 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.