All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/net/ethernet/intel/ice/ice_ptp.c:109:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
Date: Thu, 26 May 2022 13:18:17 +0800	[thread overview]
Message-ID: <202205261324.92r8ipTC-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 16710 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: Jacob Keller <jacob.e.keller@intel.com>
CC: Tony Nguyen <anthony.l.nguyen@intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   d7227785e384d4422b3ca189aa5bf19f462337cc
commit: 67569a7f940130fcfe9041e07a614a5263a9944d ice: report the PTP clock index in ethtool .get_ts_info
date:   12 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 12 months ago
config: s390-randconfig-c005-20220524 (https://download.01.org/0day-ci/archive/20220526/202205261324.92r8ipTC-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=67569a7f940130fcfe9041e07a614a5263a9944d
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 67569a7f940130fcfe9041e07a614a5263a9944d
        # 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 >>)
   arch/s390/include/asm/pci_io.h:76:2: note: Control jumps to 'case 1:'  at line 77
           switch (len) {
           ^
   arch/s390/include/asm/pci_io.h:79:3: note:  Execution continues on line 93
                   break;
                   ^
   arch/s390/include/asm/pci_io.h:93:2: note: Returning value, which participates in a condition later
           return zpci_store(dst, val, len);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:174:9: note: Returning from 'zpci_write_single'
                           rc = zpci_write_single(dst, src, size);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:175:7: note: Assuming 'rc' is 0
                   if (rc)
                       ^~
   arch/s390/include/asm/pci_io.h:175:3: note: Taking false branch
                   if (rc)
                   ^
   arch/s390/include/asm/pci_io.h:167:2: note: Loop condition is true.  Entering loop body
           while (n > 0) {
           ^
   arch/s390/include/asm/pci_io.h:168:10: note: Calling 'zpci_get_max_write_size'
                   size = zpci_get_max_write_size((u64 __force) dst,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:129:14: note: 'len' is <= 'max'
           int count = len > max ? max : len, size = 1;
                       ^~~
   arch/s390/include/asm/pci_io.h:129:14: note: '?' condition is false
   arch/s390/include/asm/pci_io.h:131:9: note: Assuming the condition is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:9: note: Left side of '&&' is true
   arch/s390/include/asm/pci_io.h:131:25: note: Assuming the condition is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:9: note: Left side of '&&' is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^
   arch/s390/include/asm/pci_io.h:131:2: note: Loop condition is true.  Entering loop body
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
           ^
   arch/s390/include/asm/pci_io.h:131:9: note: Assuming the condition is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:9: note: Left side of '&&' is true
   arch/s390/include/asm/pci_io.h:131:25: note: Assuming the condition is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:9: note: Left side of '&&' is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^
   arch/s390/include/asm/pci_io.h:131:2: note: Loop condition is true.  Entering loop body
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
           ^
   arch/s390/include/asm/pci_io.h:131:9: note: Assuming the condition is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:9: note: Left side of '&&' is true
   arch/s390/include/asm/pci_io.h:131:25: note: Assuming the condition is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:9: note: Left side of '&&' is true
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^
   arch/s390/include/asm/pci_io.h:131:2: note: Loop condition is true.  Entering loop body
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
           ^
   arch/s390/include/asm/pci_io.h:131:9: note: Assuming the condition is false
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                  ^~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:131:22: note: Left side of '&&' is false
           while (!(src & 0x1) && !(dst & 0x1) && ((size << 1) <= count)) {
                               ^
   arch/s390/include/asm/pci_io.h:136:2: note: Returning the value 8 (loaded from 'size'), which participates in a condition later
           return size;
           ^~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:168:10: note: Returning from 'zpci_get_max_write_size'
                   size = zpci_get_max_write_size((u64 __force) dst,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:171:7: note: 'size' is <= 8
                   if (size > 8) /* main path */
                       ^~~~
   arch/s390/include/asm/pci_io.h:171:3: note: Taking false branch
                   if (size > 8) /* main path */
                   ^
   arch/s390/include/asm/pci_io.h:174:9: note: Calling 'zpci_write_single'
                           rc = zpci_write_single(dst, src, size);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/s390/include/asm/pci_io.h:76:2: note: Control jumps to 'case 8:'  at line 86
           switch (len) {
           ^
   arch/s390/include/asm/pci_io.h:87:7: note: Assigned value is garbage or undefined
                   val = (u64) *((u64 *) src);
                       ^ ~~~~~~~~~~~~~~~~~~~~
   Suppressed 20 warnings (8 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.
   10 warnings generated.
   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.
   29 warnings generated.
>> drivers/net/ethernet/intel/ice/ice_ptp.c:109:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   drivers/net/ethernet/intel/ice/ice_ptp.c:109:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ice_pf_to_dev(pf);
                          ^~~
   include/linux/time64.h:67:50: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           set_normalized_timespec64(&ts_delta, lhs.tv_sec + rhs.tv_sec,
                                                           ^
   drivers/net/ethernet/intel/ice/ice_ptp.c:358:22: note: Left side of '&&' is false
           struct ice_pf *pf = ptp_info_to_pf(info);
                               ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:24:15: note: expanded from macro 'ptp_info_to_pf'
           container_of(__ptp_info_to_ptp((i)), struct ice_pf, ptp)
                        ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:22:2: note: expanded from macro '__ptp_info_to_ptp'
           container_of((i), struct ice_ptp, info)
           ^
   include/linux/kernel.h:716:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/net/ethernet/intel/ice/ice_ptp.c:358:22: note: Taking false branch
           struct ice_pf *pf = ptp_info_to_pf(info);
                               ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:24:15: note: expanded from macro 'ptp_info_to_pf'
           container_of(__ptp_info_to_ptp((i)), struct ice_pf, ptp)
                        ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:22:2: note: expanded from macro '__ptp_info_to_ptp'
           container_of((i), struct ice_ptp, info)
           ^
   include/linux/kernel.h:716: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/intel/ice/ice_ptp.c:358:22: note: Loop condition is false.  Exiting loop
           struct ice_pf *pf = ptp_info_to_pf(info);
                               ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:24:15: note: expanded from macro 'ptp_info_to_pf'
           container_of(__ptp_info_to_ptp((i)), struct ice_pf, ptp)
                        ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:22:2: note: expanded from macro '__ptp_info_to_ptp'
           container_of((i), struct ice_ptp, info)
           ^
   include/linux/kernel.h:716: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/intel/ice/ice_ptp.c:358:22: note: Left side of '&&' is false
           struct ice_pf *pf = ptp_info_to_pf(info);
                               ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:24:2: note: expanded from macro 'ptp_info_to_pf'
           container_of(__ptp_info_to_ptp((i)), struct ice_pf, ptp)
           ^
   include/linux/kernel.h:716:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/net/ethernet/intel/ice/ice_ptp.c:358:22: note: Taking false branch
           struct ice_pf *pf = ptp_info_to_pf(info);
                               ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:24:2: note: expanded from macro 'ptp_info_to_pf'
           container_of(__ptp_info_to_ptp((i)), struct ice_pf, ptp)
           ^
   include/linux/kernel.h:716: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/net/ethernet/intel/ice/ice_ptp.c:358:22: note: Loop condition is false.  Exiting loop
           struct ice_pf *pf = ptp_info_to_pf(info);
                               ^
   drivers/net/ethernet/intel/ice/ice_ptp.h:24:2: note: expanded from macro 'ptp_info_to_pf'
           container_of(__ptp_info_to_ptp((i)), struct ice_pf, ptp)
           ^

vim +/dev +109 drivers/net/ethernet/intel/ice/ice_ptp.c

67569a7f940130f Jacob Keller 2021-06-09   98  
67569a7f940130f Jacob Keller 2021-06-09   99  /**
67569a7f940130f Jacob Keller 2021-06-09  100   * ice_clear_ptp_clock_index - Clear the PTP clock index
67569a7f940130f Jacob Keller 2021-06-09  101   * @pf: the PF pointer
67569a7f940130f Jacob Keller 2021-06-09  102   *
67569a7f940130f Jacob Keller 2021-06-09  103   * Clear the PTP clock index for this device. Must be called when
67569a7f940130f Jacob Keller 2021-06-09  104   * unregistering the PTP clock, in order to ensure other PFs stop reporting
67569a7f940130f Jacob Keller 2021-06-09  105   * a clock object that no longer exists.
67569a7f940130f Jacob Keller 2021-06-09  106   */
67569a7f940130f Jacob Keller 2021-06-09  107  static void ice_clear_ptp_clock_index(struct ice_pf *pf)
67569a7f940130f Jacob Keller 2021-06-09  108  {
67569a7f940130f Jacob Keller 2021-06-09 @109  	struct device *dev = ice_pf_to_dev(pf);
67569a7f940130f Jacob Keller 2021-06-09  110  	enum ice_aqc_driver_params param_idx;
67569a7f940130f Jacob Keller 2021-06-09  111  	struct ice_hw *hw = &pf->hw;
67569a7f940130f Jacob Keller 2021-06-09  112  	u8 tmr_idx;
67569a7f940130f Jacob Keller 2021-06-09  113  	int err;
67569a7f940130f Jacob Keller 2021-06-09  114  
67569a7f940130f Jacob Keller 2021-06-09  115  	/* Do not clear the index if we don't own the timer */
67569a7f940130f Jacob Keller 2021-06-09  116  	if (!hw->func_caps.ts_func_info.src_tmr_owned)
67569a7f940130f Jacob Keller 2021-06-09  117  		return;
67569a7f940130f Jacob Keller 2021-06-09  118  
67569a7f940130f Jacob Keller 2021-06-09  119  	tmr_idx = hw->func_caps.ts_func_info.tmr_index_assoc;
67569a7f940130f Jacob Keller 2021-06-09  120  	if (!tmr_idx)
67569a7f940130f Jacob Keller 2021-06-09  121  		param_idx = ICE_AQC_DRIVER_PARAM_CLK_IDX_TMR0;
67569a7f940130f Jacob Keller 2021-06-09  122  	else
67569a7f940130f Jacob Keller 2021-06-09  123  		param_idx = ICE_AQC_DRIVER_PARAM_CLK_IDX_TMR1;
67569a7f940130f Jacob Keller 2021-06-09  124  
67569a7f940130f Jacob Keller 2021-06-09  125  	err = ice_aq_set_driver_param(hw, param_idx, 0, NULL);
67569a7f940130f Jacob Keller 2021-06-09  126  	if (err) {
67569a7f940130f Jacob Keller 2021-06-09  127  		dev_dbg(dev, "Failed to clear PTP clock index parameter, err %d aq_err %s\n",
67569a7f940130f Jacob Keller 2021-06-09  128  			err, ice_aq_str(hw->adminq.sq_last_status));
67569a7f940130f Jacob Keller 2021-06-09  129  	}
67569a7f940130f Jacob Keller 2021-06-09  130  }
67569a7f940130f Jacob Keller 2021-06-09  131  

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

             reply	other threads:[~2022-05-26  5:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-26  5:18 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-05-29  6:27 drivers/net/ethernet/intel/ice/ice_ptp.c:109:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
2022-06-02  7:33 kernel test robot
2022-06-02 16:16 kernel test robot
2022-06-05 14:42 kernel test robot
2022-06-06 19:13 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202205261324.92r8ipTC-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.