CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Eric Dumazet <[email protected]>
CC: Jakub Kicinski <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   e1f700ebd6bea293abe3c7e2807b252018efde01
commit: 914a7b5000d08f1487e0efa52f27c4b7ea75b893 lib: add tests for reference 
tracker
date:   4 months ago
:::::: branch date: 13 hours ago
:::::: commit date: 4 months ago
compiler: ia64-linux-gcc (GCC) 11.2.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 914a7b5000d08f1487e0efa52f27c4b7ea75b893
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> lib/ref_tracker.c:92:29: warning: Parameter 'trackerp' can be declared with 
>> const [constParameter]
          struct ref_tracker **trackerp)
                               ^
>> lib/ref_tracker.c:54:17: warning: Uninitialized variable: 
>> tracker->alloc_stack_handle [uninitvar]
      if (tracker->alloc_stack_handle)
                   ^
--
>> net/mctp/device.c:125:13: warning: Uninitialized variable: idx [uninitvar]
    mcb->idx = idx;
               ^
   net/mctp/device.c:102:16: note: Assuming condition is false
    for (; mcb->h < NETDEV_HASHENTRIES; mcb->h++, mcb->idx = 0) {
                  ^
   net/mctp/device.c:125:13: note: Uninitialized variable: idx
    mcb->idx = idx;
               ^
--
>> net/ipv6/ipv6_sockglue.c:1401:7: warning: Local variable 'flags' shadows 
>> outer argument [shadowArgument]
     int flags;
         ^
   net/ipv6/ipv6_sockglue.c:1134:61: note: Shadowed declaration
         char __user *optval, int __user *optlen, unsigned int flags)
                                                               ^
   net/ipv6/ipv6_sockglue.c:1401:7: note: Shadow variable
     int flags;
         ^

vim +/trackerp +92 lib/ref_tracker.c

4e66934eaadc83 Eric Dumazet 2021-12-04  42  
4e66934eaadc83 Eric Dumazet 2021-12-04  43  void ref_tracker_dir_print(struct 
ref_tracker_dir *dir,
4e66934eaadc83 Eric Dumazet 2021-12-04  44                         unsigned int 
display_limit)
4e66934eaadc83 Eric Dumazet 2021-12-04  45  {
4e66934eaadc83 Eric Dumazet 2021-12-04  46      struct ref_tracker *tracker;
4e66934eaadc83 Eric Dumazet 2021-12-04  47      unsigned long flags;
4e66934eaadc83 Eric Dumazet 2021-12-04  48      unsigned int i = 0;
4e66934eaadc83 Eric Dumazet 2021-12-04  49  
4e66934eaadc83 Eric Dumazet 2021-12-04  50      spin_lock_irqsave(&dir->lock, 
flags);
4e66934eaadc83 Eric Dumazet 2021-12-04  51      list_for_each_entry(tracker, 
&dir->list, head) {
4e66934eaadc83 Eric Dumazet 2021-12-04  52              if (i < display_limit) {
4e66934eaadc83 Eric Dumazet 2021-12-04  53                      pr_err("leaked 
reference.\n");
4e66934eaadc83 Eric Dumazet 2021-12-04 @54                      if 
(tracker->alloc_stack_handle)
4e66934eaadc83 Eric Dumazet 2021-12-04  55                              
stack_depot_print(tracker->alloc_stack_handle);
4e66934eaadc83 Eric Dumazet 2021-12-04  56                      i++;
4e66934eaadc83 Eric Dumazet 2021-12-04  57              } else {
4e66934eaadc83 Eric Dumazet 2021-12-04  58                      break;
4e66934eaadc83 Eric Dumazet 2021-12-04  59              }
4e66934eaadc83 Eric Dumazet 2021-12-04  60      }
4e66934eaadc83 Eric Dumazet 2021-12-04  61      
spin_unlock_irqrestore(&dir->lock, flags);
4e66934eaadc83 Eric Dumazet 2021-12-04  62  }
4e66934eaadc83 Eric Dumazet 2021-12-04  63  
EXPORT_SYMBOL(ref_tracker_dir_print);
4e66934eaadc83 Eric Dumazet 2021-12-04  64  
4e66934eaadc83 Eric Dumazet 2021-12-04  65  int ref_tracker_alloc(struct 
ref_tracker_dir *dir,
4e66934eaadc83 Eric Dumazet 2021-12-04  66                    struct 
ref_tracker **trackerp,
4e66934eaadc83 Eric Dumazet 2021-12-04  67                    gfp_t gfp)
4e66934eaadc83 Eric Dumazet 2021-12-04  68  {
4e66934eaadc83 Eric Dumazet 2021-12-04  69      unsigned long 
entries[REF_TRACKER_STACK_ENTRIES];
4e66934eaadc83 Eric Dumazet 2021-12-04  70      struct ref_tracker *tracker;
4e66934eaadc83 Eric Dumazet 2021-12-04  71      unsigned int nr_entries;
4e66934eaadc83 Eric Dumazet 2021-12-04  72      unsigned long flags;
4e66934eaadc83 Eric Dumazet 2021-12-04  73  
4e66934eaadc83 Eric Dumazet 2021-12-04  74      *trackerp = tracker = 
kzalloc(sizeof(*tracker), gfp | __GFP_NOFAIL);
4e66934eaadc83 Eric Dumazet 2021-12-04  75      if (unlikely(!tracker)) {
4e66934eaadc83 Eric Dumazet 2021-12-04  76              pr_err_once("memory 
allocation failure, unreliable refcount tracker.\n");
4e66934eaadc83 Eric Dumazet 2021-12-04  77              
refcount_inc(&dir->untracked);
4e66934eaadc83 Eric Dumazet 2021-12-04  78              return -ENOMEM;
4e66934eaadc83 Eric Dumazet 2021-12-04  79      }
4e66934eaadc83 Eric Dumazet 2021-12-04  80      nr_entries = 
stack_trace_save(entries, ARRAY_SIZE(entries), 1);
4e66934eaadc83 Eric Dumazet 2021-12-04  81      nr_entries = 
filter_irq_stacks(entries, nr_entries);
4e66934eaadc83 Eric Dumazet 2021-12-04  82      tracker->alloc_stack_handle = 
stack_depot_save(entries, nr_entries, gfp);
4e66934eaadc83 Eric Dumazet 2021-12-04  83  
4e66934eaadc83 Eric Dumazet 2021-12-04  84      spin_lock_irqsave(&dir->lock, 
flags);
4e66934eaadc83 Eric Dumazet 2021-12-04  85      list_add(&tracker->head, 
&dir->list);
4e66934eaadc83 Eric Dumazet 2021-12-04  86      
spin_unlock_irqrestore(&dir->lock, flags);
4e66934eaadc83 Eric Dumazet 2021-12-04  87      return 0;
4e66934eaadc83 Eric Dumazet 2021-12-04  88  }
4e66934eaadc83 Eric Dumazet 2021-12-04  89  
EXPORT_SYMBOL_GPL(ref_tracker_alloc);
4e66934eaadc83 Eric Dumazet 2021-12-04  90  
4e66934eaadc83 Eric Dumazet 2021-12-04  91  int ref_tracker_free(struct 
ref_tracker_dir *dir,
4e66934eaadc83 Eric Dumazet 2021-12-04 @92                   struct ref_tracker 
**trackerp)

:::::: The code at line 92 was first introduced by commit
:::::: 4e66934eaadc83b27ada8d42b60894018f3bfabf lib: add reference counting 
tracking infrastructure

:::::: TO: Eric Dumazet <[email protected]>
:::::: CC: Jakub Kicinski <[email protected]>

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

Reply via email to