CC: [email protected]
CC: [email protected]
TO: Tom Zanussi <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git 
ftrace/cleanup-hist-func-v4
head:   c62ecf84dee35ff23b14ae3db0bb0006c35caff7
commit: c62ecf84dee35ff23b14ae3db0bb0006c35caff7 [4/4] tracing: Have existing 
event_command.parse() implementations use helpers
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: i386-randconfig-m021-20211210 
(https://download.01.org/0day-ci/archive/20211211/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

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

smatch warnings:
kernel/trace/trace_events_hist.c:6253 event_hist_trigger_parse() error: 
uninitialized symbol 'trigger_ops'.

vim +/trigger_ops +6253 kernel/trace/trace_events_hist.c

52a7f16dedff8f Tom Zanussi       2016-03-03  6149  
7784e321840752 Tom Zanussi       2021-12-09  6150  static int 
event_hist_trigger_parse(struct event_command *cmd_ops,
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6151                               
    struct trace_event_file *file,
c62ecf84dee35f Tom Zanussi       2021-11-05  6152                               
    char *glob, char *cmd,
c62ecf84dee35f Tom Zanussi       2021-11-05  6153                               
    char *param_and_filter)
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6154  {
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6155       unsigned int 
hist_trigger_bits = TRACING_MAP_BITS_DEFAULT;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6156       struct 
event_trigger_data *trigger_data;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6157       struct 
hist_trigger_attrs *attrs;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6158       struct 
event_trigger_ops *trigger_ops;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6159       struct 
hist_trigger_data *hist_data;
c62ecf84dee35f Tom Zanussi       2021-11-05  6160       char *param, *filter, 
*p, *start;
4b147936fa5096 Tom Zanussi       2018-01-15  6161       struct synth_event *se;
4b147936fa5096 Tom Zanussi       2018-01-15  6162       const char *se_name;
c62ecf84dee35f Tom Zanussi       2021-11-05  6163       int n_registered;
c62ecf84dee35f Tom Zanussi       2021-11-05  6164       bool remove;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6165       int ret = 0;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6166  
0e2b81f7b52a1c Masami Hiramatsu  2018-11-05  6167       
lockdep_assert_held(&event_mutex);
0e2b81f7b52a1c Masami Hiramatsu  2018-11-05  6168  
f404da6e1d46ce Tom Zanussi       2018-01-15  6169       if (glob && 
strlen(glob)) {
f404da6e1d46ce Tom Zanussi       2018-01-15  6170               
hist_err_clear();
c62ecf84dee35f Tom Zanussi       2021-11-05  6171               
last_cmd_set(file, param_and_filter);
f404da6e1d46ce Tom Zanussi       2018-01-15  6172       }
f404da6e1d46ce Tom Zanussi       2018-01-15  6173  
c62ecf84dee35f Tom Zanussi       2021-11-05  6174       remove = 
event_trigger_check_remove(glob);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6175  
c62ecf84dee35f Tom Zanussi       2021-11-05  6176       if 
(event_trigger_empty_param(param_and_filter))
c62ecf84dee35f Tom Zanussi       2021-11-05  6177               return -EINVAL;
30350d65ac5676 Tom Zanussi       2018-01-15  6178  
ec5ce098754108 Tom Zanussi       2018-01-15  6179       /*
ec5ce098754108 Tom Zanussi       2018-01-15  6180        * separate the trigger 
from the filter (k:v [if filter])
ec5ce098754108 Tom Zanussi       2018-01-15  6181        * allowing for 
whitespace in the trigger
ec5ce098754108 Tom Zanussi       2018-01-15  6182        */
c62ecf84dee35f Tom Zanussi       2021-11-05  6183       p = param = 
param_and_filter;
ec5ce098754108 Tom Zanussi       2018-01-15  6184       do {
ec5ce098754108 Tom Zanussi       2018-01-15  6185               p = strstr(p, 
"if");
ec5ce098754108 Tom Zanussi       2018-01-15  6186               if (!p)
ec5ce098754108 Tom Zanussi       2018-01-15  6187                       break;
c62ecf84dee35f Tom Zanussi       2021-11-05  6188               if (p == 
param_and_filter)
ec5ce098754108 Tom Zanussi       2018-01-15  6189                       return 
-EINVAL;
ec5ce098754108 Tom Zanussi       2018-01-15  6190               if (*(p - 1) != 
' ' && *(p - 1) != '\t') {
ec5ce098754108 Tom Zanussi       2018-01-15  6191                       p++;
ec5ce098754108 Tom Zanussi       2018-01-15  6192                       
continue;
ec5ce098754108 Tom Zanussi       2018-01-15  6193               }
c62ecf84dee35f Tom Zanussi       2021-11-05  6194               if (p >= 
param_and_filter + strlen(param_and_filter) - (sizeof("if") - 1) - 1)
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6195                       return 
-EINVAL;
2f31ed9308cc9e Tom Zanussi       2018-12-18  6196               if (*(p + 
sizeof("if") - 1) != ' ' && *(p + sizeof("if") - 1) != '\t') {
ec5ce098754108 Tom Zanussi       2018-01-15  6197                       p++;
ec5ce098754108 Tom Zanussi       2018-01-15  6198                       
continue;
ec5ce098754108 Tom Zanussi       2018-01-15  6199               }
ec5ce098754108 Tom Zanussi       2018-01-15  6200               break;
ec5ce098754108 Tom Zanussi       2018-01-15  6201       } while (p);
ec5ce098754108 Tom Zanussi       2018-01-15  6202  
ec5ce098754108 Tom Zanussi       2018-01-15  6203       if (!p)
c62ecf84dee35f Tom Zanussi       2021-11-05  6204               filter = NULL;
ec5ce098754108 Tom Zanussi       2018-01-15  6205       else {
ec5ce098754108 Tom Zanussi       2018-01-15  6206               *(p - 1) = '\0';
c62ecf84dee35f Tom Zanussi       2021-11-05  6207               filter = 
strstrip(p);
c62ecf84dee35f Tom Zanussi       2021-11-05  6208               param = 
strstrip(param);
ec5ce098754108 Tom Zanussi       2018-01-15  6209       }
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6210  
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6211       /*
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6212        * To simplify 
arithmetic expression parsing, replace occurrences of
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6213        * '.sym-offset' 
modifier with '.symXoffset'
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6214        */
c62ecf84dee35f Tom Zanussi       2021-11-05  6215       start = strstr(param, 
".sym-offset");
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6216       while (start) {
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6217               *(start + 4) = 
'X';
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6218               start = 
strstr(start + 11, ".sym-offset");
feea69ec121f06 kernel test robot 2021-10-30  6219       }
c5eac6ee8bc5d3 Kalesh Singh      2021-10-25  6220  
c62ecf84dee35f Tom Zanussi       2021-11-05  6221       attrs = 
parse_hist_trigger_attrs(file->tr, param);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6222       if (IS_ERR(attrs))
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6223               return 
PTR_ERR(attrs);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6224  
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6225       if (attrs->map_bits)
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6226               
hist_trigger_bits = attrs->map_bits;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6227  
30350d65ac5676 Tom Zanussi       2018-01-15  6228       hist_data = 
create_hist_data(hist_trigger_bits, attrs, file, remove);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6229       if (IS_ERR(hist_data)) {
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6230               
destroy_hist_trigger_attrs(attrs);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6231               return 
PTR_ERR(hist_data);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6232       }
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6233  
c62ecf84dee35f Tom Zanussi       2021-11-05  6234       trigger_data = 
event_trigger_alloc(cmd_ops, cmd, param, hist_data);
4b147936fa5096 Tom Zanussi       2018-01-15  6235       if (!trigger_data) {
4b147936fa5096 Tom Zanussi       2018-01-15  6236               ret = -ENOMEM;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6237               goto out_free;
4b147936fa5096 Tom Zanussi       2018-01-15  6238       }
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6239  
c62ecf84dee35f Tom Zanussi       2021-11-05  6240       ret = 
event_trigger_set_filter(cmd_ops, file, filter, trigger_data);
52a7f16dedff8f Tom Zanussi       2016-03-03  6241       if (ret < 0)
52a7f16dedff8f Tom Zanussi       2016-03-03  6242               goto out_free;
52a7f16dedff8f Tom Zanussi       2016-03-03  6243  
30350d65ac5676 Tom Zanussi       2018-01-15  6244       if (remove) {
4b147936fa5096 Tom Zanussi       2018-01-15  6245               if 
(!have_hist_trigger_match(trigger_data, file))
4b147936fa5096 Tom Zanussi       2018-01-15  6246                       goto 
out_free;
4b147936fa5096 Tom Zanussi       2018-01-15  6247  
067fe038e70f6e Tom Zanussi       2018-01-15  6248               if 
(hist_trigger_check_refs(trigger_data, file)) {
067fe038e70f6e Tom Zanussi       2018-01-15  6249                       ret = 
-EBUSY;
067fe038e70f6e Tom Zanussi       2018-01-15  6250                       goto 
out_free;
067fe038e70f6e Tom Zanussi       2018-01-15  6251               }
067fe038e70f6e Tom Zanussi       2018-01-15  6252  
7ef224d1d0e3a1 Tom Zanussi       2016-03-03 @6253               
cmd_ops->unreg(glob+1, trigger_ops, trigger_data, file);
4b147936fa5096 Tom Zanussi       2018-01-15  6254               se_name = 
trace_event_name(file->event_call);
4b147936fa5096 Tom Zanussi       2018-01-15  6255               se = 
find_synth_event(se_name);
4b147936fa5096 Tom Zanussi       2018-01-15  6256               if (se)
4b147936fa5096 Tom Zanussi       2018-01-15  6257                       
se->ref--;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6258               ret = 0;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6259               goto out_free;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6260       }
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6261  
c62ecf84dee35f Tom Zanussi       2021-11-05  6262       ret = 
event_trigger_register(cmd_ops, file, glob, cmd, param, trigger_data, 
&n_registered);
c62ecf84dee35f Tom Zanussi       2021-11-05  6263       if (ret)
c62ecf84dee35f Tom Zanussi       2021-11-05  6264               goto out_free;
c62ecf84dee35f Tom Zanussi       2021-11-05  6265       if ((ret == 0) && 
(n_registered == 0)) {
e86ae9baacfa9e Tom Zanussi       2016-03-03  6266               if 
(!(attrs->pause || attrs->cont || attrs->clear))
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6267                       ret = 
-ENOENT;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6268               goto out_free;
c62ecf84dee35f Tom Zanussi       2021-11-05  6269       }
067fe038e70f6e Tom Zanussi       2018-01-15  6270  
067fe038e70f6e Tom Zanussi       2018-01-15  6271       if 
(get_named_trigger_data(trigger_data))
067fe038e70f6e Tom Zanussi       2018-01-15  6272               goto enable;
067fe038e70f6e Tom Zanussi       2018-01-15  6273  
067fe038e70f6e Tom Zanussi       2018-01-15  6274       if 
(has_hist_vars(hist_data))
067fe038e70f6e Tom Zanussi       2018-01-15  6275               
save_hist_vars(hist_data);
067fe038e70f6e Tom Zanussi       2018-01-15  6276  
7d18a10c316783 Tom Zanussi       2019-02-13  6277       ret = 
create_actions(hist_data);
0212e2aa30e112 Tom Zanussi       2018-01-15  6278       if (ret)
0212e2aa30e112 Tom Zanussi       2018-01-15  6279               goto out_unreg;
0212e2aa30e112 Tom Zanussi       2018-01-15  6280  
067fe038e70f6e Tom Zanussi       2018-01-15  6281       ret = 
tracing_map_init(hist_data->map);
067fe038e70f6e Tom Zanussi       2018-01-15  6282       if (ret)
067fe038e70f6e Tom Zanussi       2018-01-15  6283               goto out_unreg;
067fe038e70f6e Tom Zanussi       2018-01-15  6284  enable:
067fe038e70f6e Tom Zanussi       2018-01-15  6285       ret = 
hist_trigger_enable(trigger_data, file);
067fe038e70f6e Tom Zanussi       2018-01-15  6286       if (ret)
067fe038e70f6e Tom Zanussi       2018-01-15  6287               goto out_unreg;
067fe038e70f6e Tom Zanussi       2018-01-15  6288  
4b147936fa5096 Tom Zanussi       2018-01-15  6289       se_name = 
trace_event_name(file->event_call);
4b147936fa5096 Tom Zanussi       2018-01-15  6290       se = 
find_synth_event(se_name);
4b147936fa5096 Tom Zanussi       2018-01-15  6291       if (se)
4b147936fa5096 Tom Zanussi       2018-01-15  6292               se->ref++;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6293       /* Just return zero, 
not the number of registered triggers */
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6294       ret = 0;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6295   out:
f404da6e1d46ce Tom Zanussi       2018-01-15  6296       if (ret == 0)
f404da6e1d46ce Tom Zanussi       2018-01-15  6297               
hist_err_clear();
f404da6e1d46ce Tom Zanussi       2018-01-15  6298  
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6299       return ret;
067fe038e70f6e Tom Zanussi       2018-01-15  6300   out_unreg:
067fe038e70f6e Tom Zanussi       2018-01-15  6301       cmd_ops->unreg(glob+1, 
trigger_ops, trigger_data, file);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6302   out_free:
c62ecf84dee35f Tom Zanussi       2021-11-05  6303       
event_trigger_reset_filter(cmd_ops, trigger_data);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6304  
067fe038e70f6e Tom Zanussi       2018-01-15  6305       
remove_hist_vars(hist_data);
067fe038e70f6e Tom Zanussi       2018-01-15  6306  
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6307       kfree(trigger_data);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6308  
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6309       
destroy_hist_data(hist_data);
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6310       goto out;
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6311  }
7ef224d1d0e3a1 Tom Zanussi       2016-03-03  6312  

:::::: The code at line 6253 was first introduced by commit
:::::: 7ef224d1d0e3a1ade02d02c01ce1dcffb736d2c3 tracing: Add 'hist' event 
trigger command

:::::: TO: Tom Zanussi <[email protected]>
:::::: CC: Steven Rostedt <[email protected]>

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