Re: [PATCH 2/2] virtio-rng: add sysfs entries for leak detection

From: kernel test robot
Date: Thu Jan 19 2023 - 18:02:11 EST


Hi Babis,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on char-misc/char-misc-next char-misc/char-misc-linus linus/master v6.2-rc4 next-20230119]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Babis-Chalios/virtio-rng-implement-entropy-leak-feature/20230120-024631
patch link: https://lore.kernel.org/r/20230119184349.74072-3-bchalios%40amazon.es
patch subject: [PATCH 2/2] virtio-rng: add sysfs entries for leak detection
config: ia64-randconfig-r023-20230119 (https://download.01.org/0day-ci/archive/20230120/202301200622.6x78gCS0-lkp@xxxxxxxxx/config)
compiler: ia64-linux-gcc (GCC) 12.1.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
# https://github.com/intel-lab-lkp/linux/commit/2a801d93b8225555e4cb293a173e2053870cb2d1
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Babis-Chalios/virtio-rng-implement-entropy-leak-feature/20230120-024631
git checkout 2a801d93b8225555e4cb293a173e2053870cb2d1
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=ia64 SHELL=/bin/bash drivers/char/hw_random/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers/char/hw_random/virtio-rng.c:61:9: warning: no previous prototype for 'virtrng_sysfs_read' [-Wmissing-prototypes]
61 | ssize_t virtrng_sysfs_read(struct file *filep, struct kobject *kobj,
| ^~~~~~~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:76:5: warning: no previous prototype for 'virtrng_sysfs_mmap' [-Wmissing-prototypes]
76 | int virtrng_sysfs_mmap(struct file *filep, struct kobject *kobj,
| ^~~~~~~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:106:5: warning: no previous prototype for 'add_fill_on_leak_request' [-Wmissing-prototypes]
106 | int add_fill_on_leak_request(struct virtrng_info *vi, struct virtqueue *vq, void *data, size_t len)
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:120:5: warning: no previous prototype for 'virtrng_fill_on_leak' [-Wmissing-prototypes]
120 | int virtrng_fill_on_leak(struct virtrng_info *vi, void *data, size_t len)
| ^~~~~~~~~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:141:5: warning: no previous prototype for 'add_copy_on_leak_request' [-Wmissing-prototypes]
141 | int add_copy_on_leak_request(struct virtrng_info *vi, struct virtqueue *vq,
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:160:5: warning: no previous prototype for 'virtrng_copy_on_leak' [-Wmissing-prototypes]
160 | int virtrng_copy_on_leak(struct virtrng_info *vi, void *to, void *from, size_t len)
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/device/driver.h:21,
from include/linux/device.h:32,
from include/linux/virtio.h:9,
from drivers/char/hw_random/virtio-rng.c:15:
include/linux/module.h:130:49: error: redefinition of '__inittest'
130 | static inline initcall_t __maybe_unused __inittest(void) \
| ^~~~~~~~~~
include/linux/device/driver.h:267:1: note: in expansion of macro 'module_init'
267 | module_init(__driver##_init); \
| ^~~~~~~~~~~
include/linux/virtio.h:207:9: note: in expansion of macro 'module_driver'
207 | module_driver(__virtio_driver, register_virtio_driver, \
| ^~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:609:1: note: in expansion of macro 'module_virtio_driver'
609 | module_virtio_driver(virtio_rng_driver);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/module.h:130:49: note: previous definition of '__inittest' with type 'int (*(void))(void)'
130 | static inline initcall_t __maybe_unused __inittest(void) \
| ^~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:605:1: note: in expansion of macro 'module_init'
605 | module_init(virtio_rng_init);
| ^~~~~~~~~~~
include/linux/module.h:132:13: error: redefinition of 'init_module'
132 | int init_module(void) __copy(initfn) \
| ^~~~~~~~~~~
include/linux/device/driver.h:267:1: note: in expansion of macro 'module_init'
267 | module_init(__driver##_init); \
| ^~~~~~~~~~~
include/linux/virtio.h:207:9: note: in expansion of macro 'module_driver'
207 | module_driver(__virtio_driver, register_virtio_driver, \
| ^~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:609:1: note: in expansion of macro 'module_virtio_driver'
609 | module_virtio_driver(virtio_rng_driver);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/module.h:132:13: note: previous definition of 'init_module' with type 'int(void)'
132 | int init_module(void) __copy(initfn) \
| ^~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:605:1: note: in expansion of macro 'module_init'
605 | module_init(virtio_rng_init);
| ^~~~~~~~~~~
>> include/linux/module.h:138:49: error: redefinition of '__exittest'
138 | static inline exitcall_t __maybe_unused __exittest(void) \
| ^~~~~~~~~~
include/linux/device/driver.h:272:1: note: in expansion of macro 'module_exit'
272 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
include/linux/virtio.h:207:9: note: in expansion of macro 'module_driver'
207 | module_driver(__virtio_driver, register_virtio_driver, \
| ^~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:609:1: note: in expansion of macro 'module_virtio_driver'
609 | module_virtio_driver(virtio_rng_driver);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/module.h:138:49: note: previous definition of '__exittest' with type 'void (*(void))(void)'
138 | static inline exitcall_t __maybe_unused __exittest(void) \
| ^~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:606:1: note: in expansion of macro 'module_exit'
606 | module_exit(virtio_rng_fini);
| ^~~~~~~~~~~
>> include/linux/module.h:140:14: error: redefinition of 'cleanup_module'
140 | void cleanup_module(void) __copy(exitfn) \
| ^~~~~~~~~~~~~~
include/linux/device/driver.h:272:1: note: in expansion of macro 'module_exit'
272 | module_exit(__driver##_exit);
| ^~~~~~~~~~~
include/linux/virtio.h:207:9: note: in expansion of macro 'module_driver'
207 | module_driver(__virtio_driver, register_virtio_driver, \
| ^~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:609:1: note: in expansion of macro 'module_virtio_driver'
609 | module_virtio_driver(virtio_rng_driver);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/module.h:140:14: note: previous definition of 'cleanup_module' with type 'void(void)'
140 | void cleanup_module(void) __copy(exitfn) \
| ^~~~~~~~~~~~~~
drivers/char/hw_random/virtio-rng.c:606:1: note: in expansion of macro 'module_exit'
606 | module_exit(virtio_rng_fini);
| ^~~~~~~~~~~


vim +/__exittest +138 include/linux/module.h

0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 127
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 128 /* Each module must use one module_init(). */
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 129 #define module_init(initfn) \
1f318a8bafcfba9 Arnd Bergmann 2017-02-01 130 static inline initcall_t __maybe_unused __inittest(void) \
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 131 { return initfn; } \
cf68fffb66d60d9 Sami Tolvanen 2021-04-08 132 int init_module(void) __copy(initfn) \
cf68fffb66d60d9 Sami Tolvanen 2021-04-08 133 __attribute__((alias(#initfn))); \
92efda8eb15295a Sami Tolvanen 2022-09-08 134 ___ADDRESSABLE(init_module, __initdata);
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 135
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 136 /* This is only required if you want to be unloadable. */
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 137 #define module_exit(exitfn) \
1f318a8bafcfba9 Arnd Bergmann 2017-02-01 @138 static inline exitcall_t __maybe_unused __exittest(void) \
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 139 { return exitfn; } \
cf68fffb66d60d9 Sami Tolvanen 2021-04-08 @140 void cleanup_module(void) __copy(exitfn) \
cf68fffb66d60d9 Sami Tolvanen 2021-04-08 141 __attribute__((alias(#exitfn))); \
92efda8eb15295a Sami Tolvanen 2022-09-08 142 ___ADDRESSABLE(cleanup_module, __exitdata);
0fd972a7d91d6e1 Paul Gortmaker 2015-05-01 143

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