CC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Stephane Eranian <[email protected]>

Hi Stephane,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on next-20220125]
[cannot apply to tip/x86/core rafael-pm/linux-next tip/perf/core v5.17-rc1 
v5.16 v5.16-rc8 v5.17-rc1]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Stephane-Eranian/perf-core-add-perf_clear_branch_entry_bitfields-helper/20220127-083516
base:    d25ee88530253138d0b20d43511ca5acbda4e9f7
:::::: branch date: 32 hours ago
:::::: commit date: 32 hours ago
config: x86_64-randconfig-c007-20220124 
(https://download.01.org/0day-ci/archive/20220128/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
33b45ee44b1f32ffdbc995e6fec806271b4b3ba4)
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://github.com/0day-ci/linux/commit/933d072f6e0c0409115a8038a89a56979a042d30
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Stephane-Eranian/perf-core-add-perf_clear_branch_entry_bitfields-helper/20220127-083516
        git checkout 933d072f6e0c0409115a8038a89a56979a042d30
        # 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 <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
   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:346:2: note: expanded from macro 
'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, 
__COUNTER__)
           ^
   include/linux/compiler_types.h:334:2: note: expanded from macro 
'_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:318:2: note: expanded from macro 
'__compiletime_assert'
           do {                                                            \
           ^
   include/scsi/scsi_device.h:469:9: note: Calling '__scsi_execute'
           return scsi_execute(sdev, cmd, data_direction, buffer,
                  ^
   include/scsi/scsi_device.h:460:2: note: expanded from macro 'scsi_execute'
           __scsi_execute(sdev, cmd, data_direction, buffer, bufflen,      \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:220:4: note: 'data_direction' is not equal to 
DMA_TO_DEVICE
                           data_direction == DMA_TO_DEVICE ?
                           ^~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:220:4: note: '?' condition is false
   drivers/scsi/scsi_lib.c:222:4: note: '?' condition is false
                           rq_flags & RQF_PM ? BLK_MQ_REQ_PM : 0);
                           ^
   drivers/scsi/scsi_lib.c:223:2: note: Taking true branch
           if (IS_ERR(req))
           ^
   drivers/scsi/scsi_lib.c:224:3: note: Returning without writing to 
'sshdr->response_code'
                   return PTR_ERR(req);
                   ^
   include/scsi/scsi_device.h:469:9: note: Returning from '__scsi_execute'
           return scsi_execute(sdev, cmd, data_direction, buffer,
                  ^
   include/scsi/scsi_device.h:460:2: note: expanded from macro 'scsi_execute'
           __scsi_execute(sdev, cmd, data_direction, buffer, bufflen,      \
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/scsi/scsi_device.h:469:2: note: Returning without writing to 
'sshdr->response_code'
           return scsi_execute(sdev, cmd, data_direction, buffer,
           ^
   drivers/scsi/scsi_lib.c:2202:11: note: Returning from 'scsi_execute_req'
           result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buffer, len,
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:2204:6: note: Assuming 'result' is >= 0
           if (result < 0)
               ^~~~~~~~~~
   drivers/scsi/scsi_lib.c:2204:2: note: Taking false branch
           if (result < 0)
           ^
   drivers/scsi/scsi_lib.c:2212:7: note: Calling 'scsi_status_is_good'
           if (!scsi_status_is_good(result)) {
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/scsi/scsi.h:198:6: note: 'status' is >= 0
           if (status < 0)
               ^~~~~~
   include/scsi/scsi.h:198:2: note: Taking false branch
           if (status < 0)
           ^
   include/scsi/scsi.h:201:6: note: Assuming the condition is true
           if (host_byte(status) == DID_NO_CONNECT)
               ^
   include/scsi/scsi.h:124:29: note: expanded from macro 'host_byte'
   #define host_byte(result)   (((result) >> 16) & 0xff)
                               ^
   include/scsi/scsi.h:201:2: note: Taking true branch
           if (host_byte(status) == DID_NO_CONNECT)
           ^
   include/scsi/scsi.h:202:3: note: Returning zero, which participates in a 
condition later
                   return false;
                   ^~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:2212:7: note: Returning from 'scsi_status_is_good'
           if (!scsi_status_is_good(result)) {
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_lib.c:2212:2: note: Taking true branch
           if (!scsi_status_is_good(result)) {
           ^
   drivers/scsi/scsi_lib.c:2213: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 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   3 warnings generated.
>> arch/x86/events/amd/core.c:682:3: warning: Value stored to 'hwc' is never 
>> read [clang-analyzer-deadcode.DeadStores]
                   hwc = &cpuc->events[idx]->hw;
                   ^     ~~~~~~~~~~~~~~~~~~~~~~
   arch/x86/events/amd/core.c:682:3: note: Value stored to 'hwc' is never read
                   hwc = &cpuc->events[idx]->hw;
                   ^     ~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (1 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.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   drivers/dma-buf/dma-resv.c:525:34: warning: Access to field 'shared_count' 
results in a dereference of a null pointer (loaded from variable 'list') 
[clang-analyzer-core.NullDereference]
                           RCU_INIT_POINTER(list->shared[list->shared_count++], 
f);
                                                         ^
   include/linux/rcupdate.h:860:14: note: expanded from macro 'RCU_INIT_POINTER'
                   WRITE_ONCE(p, RCU_INITIALIZER(v)); \
                              ^
   include/asm-generic/rwonce.h:61:15: note: expanded from macro 'WRITE_ONCE'
           __WRITE_ONCE(x, val);                                           \
                        ^
   include/asm-generic/rwonce.h:55:27: note: expanded from macro '__WRITE_ONCE'
           *(volatile typeof(x) *)&(x) = (val);                            \
                                    ^
   drivers/dma-buf/dma-resv.c:494:2: note: Assuming 'debug_locks' is 0
           dma_resv_assert_held(dst);
           ^
   include/linux/dma-resv.h:271:35: note: expanded from macro 
'dma_resv_assert_held'
   #define dma_resv_assert_held(obj) lockdep_assert_held(&(obj)->lock.base)
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:316:2: note: expanded from macro 
'lockdep_assert_held'
           lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/lockdep.h:310:15: note: expanded from macro 'lockdep_assert'
           do { WARN_ON(debug_locks && !(cond)); } while (0)
                        ^~~~~~~~~~~
   include/asm-generic/bug.h:121:25: note: expanded from macro 'WARN_ON'
           int __ret_warn_on = !!(condition);                              \
                                  ^~~~~~~~~
   drivers/dma-buf/dma-resv.c:494:2: note: Left side of '&&' is false
           dma_resv_assert_held(dst);
           ^
   include/linux/dma-resv.h:271:35: note: expanded from macro 
'dma_resv_assert_held'
   #define dma_resv_assert_held(obj) lockdep_assert_held(&(obj)->lock.base)
                                     ^
   include/linux/lockdep.h:316:2: note: expanded from macro 
'lockdep_assert_held'
           lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
           ^
   include/linux/lockdep.h:310:27: note: expanded from macro 'lockdep_assert'
           do { WARN_ON(debug_locks && !(cond)); } while (0)
                                    ^
   drivers/dma-buf/dma-resv.c:494:2: note: Taking false branch
           dma_resv_assert_held(dst);
           ^
   include/linux/dma-resv.h:271:35: note: expanded from macro 
'dma_resv_assert_held'
   #define dma_resv_assert_held(obj) lockdep_assert_held(&(obj)->lock.base)
                                     ^
   include/linux/lockdep.h:316:2: note: expanded from macro 
'lockdep_assert_held'
           lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
           ^
   include/linux/lockdep.h:310:7: note: expanded from macro 'lockdep_assert'
           do { WARN_ON(debug_locks && !(cond)); } while (0)
                ^
   include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON'
           if (unlikely(__ret_warn_on))                                    \
           ^
   drivers/dma-buf/dma-resv.c:494:2: note: Loop condition is false.  Exiting 
loop
           dma_resv_assert_held(dst);
           ^
   include/linux/dma-resv.h:271:35: note: expanded from macro 
'dma_resv_assert_held'
   #define dma_resv_assert_held(obj) lockdep_assert_held(&(obj)->lock.base)
                                     ^
   include/linux/lockdep.h:316:2: note: expanded from macro 
'lockdep_assert_held'
           lockdep_assert(lockdep_is_held(l) != LOCK_STATE_NOT_HELD)
           ^
   include/linux/lockdep.h:310:2: note: expanded from macro 'lockdep_assert'

vim +/hwc +682 arch/x86/events/amd/core.c

933d072f6e0c04 Stephane Eranian 2022-01-26  672  
933d072f6e0c04 Stephane Eranian 2022-01-26  673  static void 
amd_pmu_enable_all(int added)
933d072f6e0c04 Stephane Eranian 2022-01-26  674  {
933d072f6e0c04 Stephane Eranian 2022-01-26  675         struct cpu_hw_events 
*cpuc = this_cpu_ptr(&cpu_hw_events);
933d072f6e0c04 Stephane Eranian 2022-01-26  676         struct hw_perf_event 
*hwc;
933d072f6e0c04 Stephane Eranian 2022-01-26  677         int idx;
933d072f6e0c04 Stephane Eranian 2022-01-26  678  
933d072f6e0c04 Stephane Eranian 2022-01-26  679         amd_brs_enable_all();
933d072f6e0c04 Stephane Eranian 2022-01-26  680  
933d072f6e0c04 Stephane Eranian 2022-01-26  681         for (idx = 0; idx < 
x86_pmu.num_counters; idx++) {
933d072f6e0c04 Stephane Eranian 2022-01-26 @682                 hwc = 
&cpuc->events[idx]->hw;
933d072f6e0c04 Stephane Eranian 2022-01-26  683  
933d072f6e0c04 Stephane Eranian 2022-01-26  684                 /* only 
activate events which are marked as active */
933d072f6e0c04 Stephane Eranian 2022-01-26  685                 if 
(!test_bit(idx, cpuc->active_mask))
933d072f6e0c04 Stephane Eranian 2022-01-26  686                         
continue;
933d072f6e0c04 Stephane Eranian 2022-01-26  687  
933d072f6e0c04 Stephane Eranian 2022-01-26  688                 
amd_pmu_enable_event(cpuc->events[idx]);
933d072f6e0c04 Stephane Eranian 2022-01-26  689         }
933d072f6e0c04 Stephane Eranian 2022-01-26  690  }
933d072f6e0c04 Stephane Eranian 2022-01-26  691  

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

Reply via email to