CC: [email protected]
BCC: [email protected]
TO: Jim Cromie <[email protected]>

tree:   https://github.com/jimc/linux.git ddn3h
head:   4ec4d6e7cc8be5dbb9fc98fa7d186eb3c92279f6
commit: a989dd267981b06281b4d068bc5b1cf34fd24932 [20/23] dyndbg: support 
symbolic class-names in class_bitmap
:::::: branch date: 16 hours ago
:::::: commit date: 16 hours ago
config: parisc-randconfig-m031-20220613 
(https://download.01.org/0day-ci/archive/20220614/[email protected]/config)
compiler: hppa-linux-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
lib/dynamic_debug.c:636 param_set_dyndbg_class_strings() warn: variable 
dereferenced before check 'dcp' (see line 630)

vim +/dcp +636 lib/dynamic_debug.c

09e2e18f08c39d Jim Cromie 2022-04-01  625  
a989dd267981b0 Jim Cromie 2022-04-06  626  /* support for [+-] symbolic-name 
boolean list */
a989dd267981b0 Jim Cromie 2022-04-06  627  static int 
param_set_dyndbg_class_strings(const char *instr, const struct kernel_param *kp)
a989dd267981b0 Jim Cromie 2022-04-06  628  {
a989dd267981b0 Jim Cromie 2022-04-06  629       const struct 
ddebug_classes_bitmap_param *dcp = kp->arg;
a989dd267981b0 Jim Cromie 2022-04-06 @630       const struct ddebug_classes_map 
*map = dcp->map;
a989dd267981b0 Jim Cromie 2022-04-06  631       unsigned long inbits;
a989dd267981b0 Jim Cromie 2022-04-06  632       int idx_rc, totct = 0;
a989dd267981b0 Jim Cromie 2022-04-06  633       bool wanted;
a989dd267981b0 Jim Cromie 2022-04-06  634       char *cls, *p;
a989dd267981b0 Jim Cromie 2022-04-06  635  
a989dd267981b0 Jim Cromie 2022-04-06 @636       if (!dcp || !dcp->map) {
a989dd267981b0 Jim Cromie 2022-04-06  637               
pr_err("set_dyndbg_classes: no bits=>queries map\n");
a989dd267981b0 Jim Cromie 2022-04-06  638               return -EINVAL;
a989dd267981b0 Jim Cromie 2022-04-06  639       }
a989dd267981b0 Jim Cromie 2022-04-06  640  
a989dd267981b0 Jim Cromie 2022-04-06  641       cls = kstrdup(instr, 
GFP_KERNEL);
a989dd267981b0 Jim Cromie 2022-04-06  642       p = strchr(cls, '\n');
a989dd267981b0 Jim Cromie 2022-04-06  643       if (p)
a989dd267981b0 Jim Cromie 2022-04-06  644               *p = '\0';
a989dd267981b0 Jim Cromie 2022-04-06  645  
a989dd267981b0 Jim Cromie 2022-04-06  646       inbits = *dcp->bits;
a989dd267981b0 Jim Cromie 2022-04-06  647       
vpr_info("set_dyndbg_class_strings: %s on 0x%lx\n", cls, inbits);
a989dd267981b0 Jim Cromie 2022-04-06  648  
a989dd267981b0 Jim Cromie 2022-04-06  649       for (; cls; cls = p) {
a989dd267981b0 Jim Cromie 2022-04-06  650               p = strchr(cls, ',');
a989dd267981b0 Jim Cromie 2022-04-06  651               if (p)
a989dd267981b0 Jim Cromie 2022-04-06  652                       *p++ = '\0';
a989dd267981b0 Jim Cromie 2022-04-06  653  
a989dd267981b0 Jim Cromie 2022-04-06  654               if (*cls == '-') {
a989dd267981b0 Jim Cromie 2022-04-06  655                       wanted = false;
a989dd267981b0 Jim Cromie 2022-04-06  656                       cls++;
a989dd267981b0 Jim Cromie 2022-04-06  657               } else {
a989dd267981b0 Jim Cromie 2022-04-06  658                       wanted = true;
a989dd267981b0 Jim Cromie 2022-04-06  659                       if (*cls == '+')
a989dd267981b0 Jim Cromie 2022-04-06  660                               cls++;
a989dd267981b0 Jim Cromie 2022-04-06  661               }
a989dd267981b0 Jim Cromie 2022-04-06  662               idx_rc = 
match_string(map->class_names, map->length, cls);
a989dd267981b0 Jim Cromie 2022-04-06  663               if (idx_rc < 0) {
a989dd267981b0 Jim Cromie 2022-04-06  664                       pr_err("%s not 
found for module: %s\n", cls, map->mod_name);
a989dd267981b0 Jim Cromie 2022-04-06  665                       continue;
a989dd267981b0 Jim Cromie 2022-04-06  666               }
a989dd267981b0 Jim Cromie 2022-04-06  667  
a989dd267981b0 Jim Cromie 2022-04-06  668               switch (map->map_type) {
a989dd267981b0 Jim Cromie 2022-04-06  669               case 
DD_CLASS_TYPE_DISJOINT:
a989dd267981b0 Jim Cromie 2022-04-06  670                       if 
(test_bit(idx_rc, &inbits) == wanted) {
a989dd267981b0 Jim Cromie 2022-04-06  671                               
v3pr_info("no change on %s\n", cls);
a989dd267981b0 Jim Cromie 2022-04-06  672                               
continue;
a989dd267981b0 Jim Cromie 2022-04-06  673                       }
a989dd267981b0 Jim Cromie 2022-04-06  674                       inbits ^= 
BIT(idx_rc);
a989dd267981b0 Jim Cromie 2022-04-06  675                       break;
a989dd267981b0 Jim Cromie 2022-04-06  676               case 
DD_CLASS_TYPE_LEVELS:
a989dd267981b0 Jim Cromie 2022-04-06  677                       /* bitmask must 
respect classmap ranges, this does not */
a989dd267981b0 Jim Cromie 2022-04-06  678                       inbits = (1 << 
(idx_rc + wanted)) - 1;
a989dd267981b0 Jim Cromie 2022-04-06  679                       break;
a989dd267981b0 Jim Cromie 2022-04-06  680               default:
a989dd267981b0 Jim Cromie 2022-04-06  681                       pr_err("illegal 
map-type value %d\n", map->map_type);
a989dd267981b0 Jim Cromie 2022-04-06  682               }
a989dd267981b0 Jim Cromie 2022-04-06  683               
vpr_info("set_dyndbg_classes: bit %d: %s\n", idx_rc, map->class_names[idx_rc]);
a989dd267981b0 Jim Cromie 2022-04-06  684               totct += 
ddebug_apply_class_bitmap(dcp, &inbits);
a989dd267981b0 Jim Cromie 2022-04-06  685       }
a989dd267981b0 Jim Cromie 2022-04-06  686       kfree(cls);
a989dd267981b0 Jim Cromie 2022-04-06  687       *dcp->bits = inbits;
a989dd267981b0 Jim Cromie 2022-04-06  688       vpr_info("total matches: %d\n", 
totct);
a989dd267981b0 Jim Cromie 2022-04-06  689       return 0;
a989dd267981b0 Jim Cromie 2022-04-06  690  }
a989dd267981b0 Jim Cromie 2022-04-06  691  

-- 
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