2023-12-14 20:55:12

by kernel test robot

[permalink] [raw]
Subject: kernel/gcov/fs.c:103: warning: Excess struct member 'buffer' description in 'gcov_iterator'

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
commit: fbd126f5a658b92c7f6af986a6d89cf5e5693268 gcov: annotate struct gcov_iterator with __counted_by
date: 8 weeks ago
config: i386-buildonly-randconfig-001-20231214 (https://download.01.org/0day-ci/archive/20231215/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231215/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

>> kernel/gcov/fs.c:103: warning: Excess struct member 'buffer' description in 'gcov_iterator'


vim +103 kernel/gcov/fs.c

7a1d55b987dfcb Johannes Berg 2021-05-06 90
7a1d55b987dfcb Johannes Berg 2021-05-06 91 /**
7a1d55b987dfcb Johannes Berg 2021-05-06 92 * struct gcov_iterator - specifies current file position in logical records
7a1d55b987dfcb Johannes Berg 2021-05-06 93 * @info: associated profiling data
7a1d55b987dfcb Johannes Berg 2021-05-06 94 * @buffer: buffer containing file data
7a1d55b987dfcb Johannes Berg 2021-05-06 95 * @size: size of buffer
7a1d55b987dfcb Johannes Berg 2021-05-06 96 * @pos: current position in file
7a1d55b987dfcb Johannes Berg 2021-05-06 97 */
7a1d55b987dfcb Johannes Berg 2021-05-06 98 struct gcov_iterator {
7a1d55b987dfcb Johannes Berg 2021-05-06 99 struct gcov_info *info;
7a1d55b987dfcb Johannes Berg 2021-05-06 100 size_t size;
7a1d55b987dfcb Johannes Berg 2021-05-06 101 loff_t pos;
fbd126f5a658b9 Kees Cook 2023-09-22 102 char buffer[] __counted_by(size);
7a1d55b987dfcb Johannes Berg 2021-05-06 @103 };
7a1d55b987dfcb Johannes Berg 2021-05-06 104

:::::: The code at line 103 was first introduced by commit
:::::: 7a1d55b987dfcbddecdb67eecc76fe555d4348ba gcov: combine common code

:::::: TO: Johannes Berg <[email protected]>
:::::: CC: Linus Torvalds <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


2023-12-14 21:52:33

by Kees Cook

[permalink] [raw]
Subject: Re: kernel/gcov/fs.c:103: warning: Excess struct member 'buffer' description in 'gcov_iterator'

On Fri, Dec 15, 2023 at 04:53:19AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
> commit: fbd126f5a658b92c7f6af986a6d89cf5e5693268 gcov: annotate struct gcov_iterator with __counted_by
> date: 8 weeks ago
> config: i386-buildonly-randconfig-001-20231214 (https://download.01.org/0day-ci/archive/20231215/[email protected]/config)
> compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231215/[email protected]/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <[email protected]>
> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
>
> All warnings (new ones prefixed by >>):
>
> >> kernel/gcov/fs.c:103: warning: Excess struct member 'buffer' description in 'gcov_iterator'
>
>
> vim +103 kernel/gcov/fs.c
>
> 7a1d55b987dfcb Johannes Berg 2021-05-06 90
> 7a1d55b987dfcb Johannes Berg 2021-05-06 91 /**
> 7a1d55b987dfcb Johannes Berg 2021-05-06 92 * struct gcov_iterator - specifies current file position in logical records
> 7a1d55b987dfcb Johannes Berg 2021-05-06 93 * @info: associated profiling data
> 7a1d55b987dfcb Johannes Berg 2021-05-06 94 * @buffer: buffer containing file data
> 7a1d55b987dfcb Johannes Berg 2021-05-06 95 * @size: size of buffer
> 7a1d55b987dfcb Johannes Berg 2021-05-06 96 * @pos: current position in file
> 7a1d55b987dfcb Johannes Berg 2021-05-06 97 */
> 7a1d55b987dfcb Johannes Berg 2021-05-06 98 struct gcov_iterator {
> 7a1d55b987dfcb Johannes Berg 2021-05-06 99 struct gcov_info *info;
> 7a1d55b987dfcb Johannes Berg 2021-05-06 100 size_t size;
> 7a1d55b987dfcb Johannes Berg 2021-05-06 101 loff_t pos;
> fbd126f5a658b9 Kees Cook 2023-09-22 102 char buffer[] __counted_by(size);
> 7a1d55b987dfcb Johannes Berg 2021-05-06 @103 };
> 7a1d55b987dfcb Johannes Berg 2021-05-06 104

It looks like whatever produces that error is not parsing attributes
correctly. I suspect this is the "htmldocs" target and "__counted_by" is
missing from Documentation/conf.py. I'll investigate...

--
Kees Cook

2023-12-15 01:10:51

by Li, Philip

[permalink] [raw]
Subject: Re: kernel/gcov/fs.c:103: warning: Excess struct member 'buffer' description in 'gcov_iterator'

On Thu, Dec 14, 2023 at 01:50:05PM -0800, Kees Cook wrote:
> On Fri, Dec 15, 2023 at 04:53:19AM +0800, kernel test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: 5bd7ef53ffe5ca580e93e74eb8c81ed191ddc4bd
> > commit: fbd126f5a658b92c7f6af986a6d89cf5e5693268 gcov: annotate struct gcov_iterator with __counted_by
> > date: 8 weeks ago
> > config: i386-buildonly-randconfig-001-20231214 (https://download.01.org/0day-ci/archive/20231215/[email protected]/config)
> > compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231215/[email protected]/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <[email protected]>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> >
> > All warnings (new ones prefixed by >>):
> >
> > >> kernel/gcov/fs.c:103: warning: Excess struct member 'buffer' description in 'gcov_iterator'
> >
> >
> > vim +103 kernel/gcov/fs.c
> >
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 90
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 91 /**
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 92 * struct gcov_iterator - specifies current file position in logical records
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 93 * @info: associated profiling data
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 94 * @buffer: buffer containing file data
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 95 * @size: size of buffer
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 96 * @pos: current position in file
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 97 */
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 98 struct gcov_iterator {
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 99 struct gcov_info *info;
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 100 size_t size;
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 101 loff_t pos;
> > fbd126f5a658b9 Kees Cook 2023-09-22 102 char buffer[] __counted_by(size);
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 @103 };
> > 7a1d55b987dfcb Johannes Berg 2021-05-06 104
>
> It looks like whatever produces that error is not parsing attributes
> correctly. I suspect this is the "htmldocs" target and "__counted_by" is
> missing from Documentation/conf.py. I'll investigate...

This is triggered by W=1 build

make W=1 O=build_dir ARCH=i386 olddefconfig
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash kernel/gcov/

The detail step is at [1], hope it can help reproduce the issue

[1] https://download.01.org/0day-ci/archive/20231215/[email protected]/reproduce

>
> --
> Kees Cook
>