tree:
https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-5.9/firmware
head: 4e87189912bd2167998d82c95bb68f73185069e2
commit: 5e37b9c137ee5a3a9dc2815ca51f71746c2609a6 [4/5] firmware: tegra: Add support for
in-band debug
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
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
git checkout 5e37b9c137ee5a3a9dc2815ca51f71746c2609a6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
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 >>):
drivers/firmware/tegra/bpmp-debugfs.c: In function
'bpmp_populate_debugfs_inband':
> drivers/firmware/tegra/bpmp-debugfs.c:422:4: warning:
'strncat' output truncated before terminating nul copying as many bytes from a
string as its length [-Wstringop-truncation]
422 | strncat(pathbuf, name,
strlen(name));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/strncat +422 drivers/firmware/tegra/bpmp-debugfs.c
364
365 static int bpmp_populate_debugfs_inband(struct tegra_bpmp *bpmp,
366 struct dentry *parent,
367 char *ppath)
368 {
369 const size_t pathlen = SZ_256;
370 const size_t bufsize = SZ_16K;
371 uint32_t dsize, attrs = 0;
372 struct dentry *dentry;
373 struct seqbuf seqbuf;
374 char *buf, *pathbuf;
375 const char *name;
376 int err = 0;
377
378 if (!bpmp || !parent || !ppath)
379 return -EINVAL;
380
381 buf = kmalloc(bufsize, GFP_KERNEL);
382 if (!buf)
383 return -ENOMEM;
384
385 pathbuf = kzalloc(pathlen, GFP_KERNEL);
386 if (!pathbuf) {
387 kfree(buf);
388 return -ENOMEM;
389 }
390
391 err = mrq_debug_read(bpmp, ppath, buf, bufsize, &dsize);
392 if (err)
393 goto out;
394
395 seqbuf_init(&seqbuf, buf, dsize);
396
397 while (!seqbuf_eof(&seqbuf)) {
398 err = seqbuf_read_u32(&seqbuf, &attrs);
399 if (err)
400 goto out;
401
402 err = seqbuf_read_str(&seqbuf, &name);
403 if (err < 0)
404 goto out;
405
406 if (attrs & DEBUGFS_S_ISDIR) {
407 size_t len;
408
409 dentry = debugfs_create_dir(name, parent);
410 if (IS_ERR(dentry)) {
411 err = PTR_ERR(dentry);
412 goto out;
413 }
414
415 len = strlen(ppath) + strlen(name) + 1;
416 if (len >= pathlen) {
417 err = -EINVAL;
418 goto out;
419 }
420
421 strncpy(pathbuf, ppath, pathlen);
422 strncat(pathbuf, name, strlen(name));
423 strcat(pathbuf, "/");
424
425 err = bpmp_populate_debugfs_inband(bpmp, dentry,
426 pathbuf);
427 if (err < 0)
428 goto out;
429 } else {
430 umode_t mode;
431
432 mode = attrs & DEBUGFS_S_IRUSR ? 0400 : 0;
433 mode |= attrs & DEBUGFS_S_IWUSR ? 0200 : 0;
434 dentry = debugfs_create_file(name, mode, parent, bpmp,
435 &bpmp_debug_fops);
436 if (!dentry) {
437 err = -ENOMEM;
438 goto out;
439 }
440 }
441 }
442
443 out:
444 kfree(pathbuf);
445 kfree(buf);
446
447 return err;
448 }
449
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org