:::::: :::::: Manual check reason: "low confidence static check warning: 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]" ::::::
CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Jacob Keller <jacob.e.kel...@intel.com> CC: Tony Nguyen <anthony.l.ngu...@intel.com> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f2906aa863381afb0015a9eb7fefad885d4e5a56 commit: 67569a7f940130fcfe9041e07a614a5263a9944d ice: report the PTP clock index in ethtool .get_ts_info date: 12 months ago :::::: branch date: 19 hours ago :::::: commit date: 12 months ago config: s390-randconfig-c005-20220524 (https://download.01.org/0day-ci/archive/20220607/202206070307.pzbozv2d-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 134d7f9a4b97e9035150d970bd9e376043c4577e) 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 <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) ^ include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr' #define __verify_pcpu_ptr(ptr) \ ^ include/linux/percpu-refcount.h:320:3: note: Control jumps to 'case 8:' at line 320 this_cpu_sub(*percpu_count, nr); ^ include/linux/percpu-defs.h:519:33: note: expanded from macro 'this_cpu_sub' #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val)) ^ include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add' #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val) ^ include/linux/percpu-defs.h:376:2: note: expanded from macro '__pcpu_size_call' switch(sizeof(variable)) { \ ^ include/linux/percpu-refcount.h:320:3: note: Loop condition is false. Exiting loop this_cpu_sub(*percpu_count, nr); ^ include/linux/percpu-defs.h:519:33: note: expanded from macro 'this_cpu_sub' #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val)) ^ include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add' #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val) ^ include/linux/percpu-defs.h:380:11: note: expanded from macro '__pcpu_size_call' case 8: stem##8(variable, __VA_ARGS__);break; \ ^ note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) arch/s390/include/asm/percpu.h:91:34: note: expanded from macro 'this_cpu_add_8' #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long) ^ arch/s390/include/asm/percpu.h:71:2: note: expanded from macro 'arch_this_cpu_add' preempt_disable_notrace(); \ ^ include/linux/preempt.h:228:35: note: expanded from macro 'preempt_disable_notrace' #define preempt_disable_notrace() \ ^ include/linux/percpu-refcount.h:320:3: note: Loop condition is false. Exiting loop this_cpu_sub(*percpu_count, nr); ^ include/linux/percpu-defs.h:519:33: note: expanded from macro 'this_cpu_sub' #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val)) ^ include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add' #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val) ^ include/linux/percpu-defs.h:380:11: note: expanded from macro '__pcpu_size_call' case 8: stem##8(variable, __VA_ARGS__);break; \ ^ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) arch/s390/include/asm/percpu.h:72:10: note: expanded from macro 'arch_this_cpu_add' ptr__ = raw_cpu_ptr(&(pcp)); \ ^ include/linux/percpu-defs.h:241:2: note: expanded from macro 'raw_cpu_ptr' __verify_pcpu_ptr(ptr); \ ^ include/linux/percpu-defs.h:217:37: note: expanded from macro '__verify_pcpu_ptr' #define __verify_pcpu_ptr(ptr) \ ^ include/linux/percpu-refcount.h:320:3: note: Dereference of null pointer this_cpu_sub(*percpu_count, nr); ^ include/linux/percpu-defs.h:519:33: note: expanded from macro 'this_cpu_sub' #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:509:33: note: expanded from macro 'this_cpu_add' #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:380:11: note: expanded from macro '__pcpu_size_call' case 8: stem##8(variable, __VA_ARGS__);break; \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) include/asm-generic/percpu.h:44:31: note: expanded from macro 'arch_raw_cpu_ptr' #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:231:2: note: expanded from macro 'SHIFT_PERCPU_PTR' RELOC_HIDE((typeof(*(__p)) __kernel __force *)(__p), (__offset)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:182:28: note: expanded from macro 'RELOC_HIDE' (typeof(ptr)) (__ptr + (off)); }) ^~~~~ Suppressed 7 warnings (7 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 25 warnings generated. drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_powertune.c:978:3: warning: Value stored to 'value' is never read [clang-analyzer-deadcode.DeadStores] value = 0; ^ ~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_powertune.c:978:3: note: Value stored to 'value' is never read value = 0; ^ ~ 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. 24 warnings generated. 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. 24 warnings generated. 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. 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 67569a7f940130 Jacob Keller 2021-06-09 98 67569a7f940130 Jacob Keller 2021-06-09 99 /** 67569a7f940130 Jacob Keller 2021-06-09 100 * ice_clear_ptp_clock_index - Clear the PTP clock index 67569a7f940130 Jacob Keller 2021-06-09 101 * @pf: the PF pointer 67569a7f940130 Jacob Keller 2021-06-09 102 * 67569a7f940130 Jacob Keller 2021-06-09 103 * Clear the PTP clock index for this device. Must be called when 67569a7f940130 Jacob Keller 2021-06-09 104 * unregistering the PTP clock, in order to ensure other PFs stop reporting 67569a7f940130 Jacob Keller 2021-06-09 105 * a clock object that no longer exists. 67569a7f940130 Jacob Keller 2021-06-09 106 */ 67569a7f940130 Jacob Keller 2021-06-09 107 static void ice_clear_ptp_clock_index(struct ice_pf *pf) 67569a7f940130 Jacob Keller 2021-06-09 108 { 67569a7f940130 Jacob Keller 2021-06-09 @109 struct device *dev = ice_pf_to_dev(pf); 67569a7f940130 Jacob Keller 2021-06-09 110 enum ice_aqc_driver_params param_idx; 67569a7f940130 Jacob Keller 2021-06-09 111 struct ice_hw *hw = &pf->hw; 67569a7f940130 Jacob Keller 2021-06-09 112 u8 tmr_idx; 67569a7f940130 Jacob Keller 2021-06-09 113 int err; 67569a7f940130 Jacob Keller 2021-06-09 114 67569a7f940130 Jacob Keller 2021-06-09 115 /* Do not clear the index if we don't own the timer */ 67569a7f940130 Jacob Keller 2021-06-09 116 if (!hw->func_caps.ts_func_info.src_tmr_owned) 67569a7f940130 Jacob Keller 2021-06-09 117 return; 67569a7f940130 Jacob Keller 2021-06-09 118 67569a7f940130 Jacob Keller 2021-06-09 119 tmr_idx = hw->func_caps.ts_func_info.tmr_index_assoc; 67569a7f940130 Jacob Keller 2021-06-09 120 if (!tmr_idx) 67569a7f940130 Jacob Keller 2021-06-09 121 param_idx = ICE_AQC_DRIVER_PARAM_CLK_IDX_TMR0; 67569a7f940130 Jacob Keller 2021-06-09 122 else 67569a7f940130 Jacob Keller 2021-06-09 123 param_idx = ICE_AQC_DRIVER_PARAM_CLK_IDX_TMR1; 67569a7f940130 Jacob Keller 2021-06-09 124 67569a7f940130 Jacob Keller 2021-06-09 125 err = ice_aq_set_driver_param(hw, param_idx, 0, NULL); 67569a7f940130 Jacob Keller 2021-06-09 126 if (err) { 67569a7f940130 Jacob Keller 2021-06-09 127 dev_dbg(dev, "Failed to clear PTP clock index parameter, err %d aq_err %s\n", 67569a7f940130 Jacob Keller 2021-06-09 128 err, ice_aq_str(hw->adminq.sq_last_status)); 67569a7f940130 Jacob Keller 2021-06-09 129 } 67569a7f940130 Jacob Keller 2021-06-09 130 } 67569a7f940130 Jacob Keller 2021-06-09 131 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org