tree:
https://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git
ftrace/synth-fixes-v4
head: 6cb978ea1a56e76f723fb7aee74422b0766db8e9
commit: 10708db9327a6db3e8cdd9639504923e6629ae85 [4/5] tracing: Add a
backward-compatibility check for synthetic event creation
config: powerpc-randconfig-r023-20201217 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
cee1e7d14f4628d6174b33640d502bff3b54ae45)
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 powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
#
https://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git/c...
git remote add zanussi-trace
https://git.kernel.org/pub/scm/linux/kernel/git/zanussi/linux-trace.git
git fetch --no-tags zanussi-trace ftrace/synth-fixes-v4
git checkout 10708db9327a6db3e8cdd9639504923e6629ae85
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> kernel/trace/trace_events_synth.c:1508:6: warning: variable
'save_argv' is used uninitialized whenever 'if' condition is true
[-Wsometimes-uninitialized]
if (!argc)
^~~~~
kernel/trace/trace_events_synth.c:1564:12: note: uninitialized use occurs here
argv_free(save_argv);
^~~~~~~~~
kernel/trace/trace_events_synth.c:1508:2: note: remove the 'if' if its
condition is always false
if (!argc)
^~~~~~~~~~
kernel/trace/trace_events_synth.c:1496:33: note: initialize the variable
'save_argv' to silence this warning
char *name, **argv, **save_argv;
^
= NULL
> kernel/trace/trace_events_synth.c:1508:6: warning: variable
'buf' is used uninitialized whenever 'if' condition is true
[-Wsometimes-uninitialized]
if (!argc)
^~~~~
kernel/trace/trace_events_synth.c:1566:9: note: uninitialized use occurs here
return buf;
^~~
kernel/trace/trace_events_synth.c:1508:2: note: remove the 'if' if its
condition is always false
if (!argc)
^~~~~~~~~~
kernel/trace/trace_events_synth.c:1500:11: note: initialize the variable 'buf'
to silence this warning
char *buf;
^
= NULL
2 warnings generated.
vim +1508 kernel/trace/trace_events_synth.c
1492
1493 static char *insert_semicolons(const char *raw_command)
1494 {
1495 int i, argc, consumed = 0, n_fields = 0, semis_added = 0;
1496 char *name, **argv, **save_argv;
1497 int ret = -EINVAL;
1498 struct seq_buf s;
1499 bool added_semi;
1500 char *buf;
1501
1502 argc = 0;
1503
1504 argv = argv_split(GFP_KERNEL, raw_command, &argc);
1505 if (!argv)
1506 return NULL;
1507
1508 if (!argc)
1509 goto out;
1510
1511 name = argv[0];
1512 save_argv = argv;
1513 argv++;
1514 argc--;
1515
1516 buf = kzalloc(MAX_DYNEVENT_CMD_LEN, GFP_KERNEL);
1517 if (!buf) {
1518 ret = -ENOMEM;
1519 goto err;
1520 }
1521
1522 seq_buf_init(&s, buf, MAX_DYNEVENT_CMD_LEN);
1523
1524 seq_buf_puts(&s, name);
1525 seq_buf_putc(&s, ' ');
1526
1527 if (name[0] == '\0' || argc < 1)
1528 goto err;
1529
1530 for (i = 0; i < argc - 1; i++) {
1531 if (strcmp(argv[i], ";") == 0) {
1532 seq_buf_puts(&s, " ; ");
1533 continue;
1534 }
1535
1536 if (n_fields == SYNTH_FIELDS_MAX)
1537 goto err;
1538
1539 ret = save_synth_field(argc - i, &argv[i], &consumed,
1540 &s, &added_semi);
1541 if (ret)
1542 goto err;
1543
1544 if (added_semi)
1545 semis_added++;
1546
1547 i += consumed - 1;
1548 }
1549
1550 if (i < argc && strcmp(argv[i], ";") != 0)
1551 goto err;
1552
1553 if (!semis_added) {
1554 kfree(buf);
1555 buf = NULL;
1556 goto out;
1557 }
1558
1559 if (WARN_ON_ONCE(!seq_buf_buffer_left(&s)))
1560 goto err;
1561
1562 buf[s.len] = '\0';
1563 out:
1564 argv_free(save_argv);
1565
1566 return buf;
1567 err:
1568 kfree(buf);
1569 buf = ERR_PTR(ret);
1570
1571 goto out;
1572 }
1573
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org