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

From: kernel test robot
Date: Thu Jan 19 2023 - 17:50:12 EST


Hi Babis,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING 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: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230120/202301200640.CsblwTsa-lkp@xxxxxxxxx/config)
compiler: m68k-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=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/char/

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

All warnings (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)
| ^~~~~~~~~~~~~~~~~~~~


vim +/virtrng_sysfs_read +61 drivers/char/hw_random/virtio-rng.c

59
60 #ifdef CONFIG_SYSFS
> 61 ssize_t virtrng_sysfs_read(struct file *filep, struct kobject *kobj,
62 struct bin_attribute *attr, char *buf, loff_t pos, size_t len)
63 {
64 struct virtrng_info *vi = attr->private;
65 unsigned long gen_counter = *(unsigned long *)vi->map_buffer;
66
67 if (!len)
68 return 0;
69
70 len = min(len, sizeof(gen_counter));
71 memcpy(buf, &gen_counter, len);
72
73 return len;
74 }
75
> 76 int virtrng_sysfs_mmap(struct file *filep, struct kobject *kobj,
77 struct bin_attribute *attr, struct vm_area_struct *vma)
78 {
79 struct virtrng_info *vi = attr->private;
80
81 if (vma->vm_pgoff || vma_pages(vma) > 1)
82 return -EINVAL;
83
84 if (vma->vm_flags & VM_WRITE)
85 return -EPERM;
86
87 vma->vm_flags |= VM_DONTEXPAND;
88 vma->vm_flags &= ~VM_MAYWRITE;
89
90 return vm_insert_page(vma, vma->vm_start, virt_to_page(vi->map_buffer));
91 }
92 #endif
93

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