Messages in this thread | | | Date | Wed, 10 Nov 2021 23:12:39 +0800 | From | kernel test robot <> | Subject | drivers/vfio/vfio.c:293: warning: expecting prototype for Container objects(). Prototype was for vfio_container_get() instead |
| |
Hi Jason,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: cb690f5238d71f543f4ce874aa59237cf53a877c commit: 179209fa12709a3df8888c323b37315da2683c24 vfio: IOMMU_API should be selected date: 8 months ago config: microblaze-buildonly-randconfig-r004-20210927 (attached as .config) compiler: microblaze-linux-gcc (GCC) 11.2.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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=179209fa12709a3df8888c323b37315da2683c24 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 179209fa12709a3df8888c323b37315da2683c24 # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=microblaze SHELL=/bin/bash arch/microblaze/kernel/ drivers/base/ drivers/char/ drivers/clk/ drivers/clocksource/ drivers/dax/ drivers/firewire/ drivers/gpu/drm/amd/amdgpu/ drivers/gpu/drm/amd/display/amdgpu_dm/ drivers/gpu/drm/amd/display/dc/dce/ drivers/gpu/drm/amd/display/dc/dce110/ drivers/gpu/drm/exynos/ drivers/i3c/ drivers/iio/accel/ drivers/memstick/host/ drivers/misc/ drivers/nvmem/ drivers/pci/ drivers/phy/qualcomm/ drivers/power/supply/ drivers/rapidio/ drivers/rtc/ drivers/soc/qcom/ drivers/thermal/ drivers/tty/ drivers/vfio/ drivers/video/fbdev/ drivers/w1/masters/ drivers/w1/slaves/ fs/ init/ kernel/ lib/ mm/ net/
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/vfio/vfio.c:224: warning: Function parameter or member 'ops' not described in 'vfio_register_iommu_driver' drivers/vfio/vfio.c:224: warning: expecting prototype for IOMMU driver registration(). Prototype was for vfio_register_iommu_driver() instead drivers/vfio/vfio.c:273: warning: Function parameter or member 'group' not described in 'vfio_alloc_group_minor' drivers/vfio/vfio.c:273: warning: expecting prototype for free(). Prototype was for vfio_alloc_group_minor() instead drivers/vfio/vfio.c:293: warning: Function parameter or member 'container' not described in 'vfio_container_get' >> drivers/vfio/vfio.c:293: warning: expecting prototype for Container objects(). Prototype was for vfio_container_get() instead drivers/vfio/vfio.c:325: warning: Function parameter or member 'iommu_group' not described in 'vfio_create_group' >> drivers/vfio/vfio.c:325: warning: expecting prototype for Group objects(). Prototype was for vfio_create_group() instead drivers/vfio/vfio.c:540: warning: Function parameter or member 'group' not described in 'vfio_group_create_device' drivers/vfio/vfio.c:540: warning: Function parameter or member 'dev' not described in 'vfio_group_create_device' drivers/vfio/vfio.c:540: warning: Function parameter or member 'ops' not described in 'vfio_group_create_device' drivers/vfio/vfio.c:540: warning: Function parameter or member 'device_data' not described in 'vfio_group_create_device' drivers/vfio/vfio.c:540: warning: expecting prototype for Device objects(). Prototype was for vfio_group_create_device() instead drivers/vfio/vfio.c:694: warning: Function parameter or member 'group' not described in 'vfio_group_nb_add_dev' drivers/vfio/vfio.c:694: warning: Function parameter or member 'dev' not described in 'vfio_group_nb_add_dev' drivers/vfio/vfio.c:694: warning: expecting prototype for Async device support(). Prototype was for vfio_group_nb_add_dev() instead drivers/vfio/vfio.c:806: warning: Function parameter or member 'dev' not described in 'vfio_add_group_dev' drivers/vfio/vfio.c:806: warning: Function parameter or member 'ops' not described in 'vfio_add_group_dev' drivers/vfio/vfio.c:806: warning: Function parameter or member 'device_data' not described in 'vfio_add_group_dev' drivers/vfio/vfio.c:806: warning: expecting prototype for VFIO driver API(). Prototype was for vfio_add_group_dev() instead drivers/vfio/vfio.c:864: warning: Function parameter or member 'dev' not described in 'vfio_device_get_from_dev' drivers/vfio/vfio.c:864: warning: expecting prototype for Even if the(). Prototype was for vfio_device_get_from_dev() instead drivers/vfio/vfio.c:1022: warning: Function parameter or member 'container' not described in 'vfio_ioctl_check_extension' drivers/vfio/vfio.c:1022: warning: Function parameter or member 'arg' not described in 'vfio_ioctl_check_extension' drivers/vfio/vfio.c:1022: warning: expecting prototype for vfio(). Prototype was for vfio_ioctl_check_extension() instead drivers/vfio/vfio.c:1298: warning: Function parameter or member 'group' not described in '__vfio_group_unset_container' drivers/vfio/vfio.c:1298: warning: expecting prototype for GROUP(). Prototype was for __vfio_group_unset_container() instead drivers/vfio/vfio.c:1633: warning: Function parameter or member 'inode' not described in 'vfio_device_fops_release' drivers/vfio/vfio.c:1633: warning: Function parameter or member 'filep' not described in 'vfio_device_fops_release' drivers/vfio/vfio.c:1633: warning: expecting prototype for VFIO Device fd(). Prototype was for vfio_device_fops_release() instead drivers/vfio/vfio.c:1700: warning: wrong kernel-doc identifier on line: * External user API, exported by symbols to be linked dynamically. drivers/vfio/vfio.c:1745: warning: wrong kernel-doc identifier on line: * External user API, exported by symbols to be linked dynamically. drivers/vfio/vfio.c:1824: warning: Function parameter or member 'caps' not described in 'vfio_info_cap_add' drivers/vfio/vfio.c:1824: warning: Function parameter or member 'size' not described in 'vfio_info_cap_add' drivers/vfio/vfio.c:1824: warning: Function parameter or member 'id' not described in 'vfio_info_cap_add' drivers/vfio/vfio.c:1824: warning: Function parameter or member 'version' not described in 'vfio_info_cap_add' >> drivers/vfio/vfio.c:1824: warning: expecting prototype for Sub(). Prototype was for vfio_info_cap_add() instead drivers/vfio/vfio.c:2361: warning: Function parameter or member 'dev' not described in 'vfio_devnode' drivers/vfio/vfio.c:2361: warning: Function parameter or member 'mode' not described in 'vfio_devnode' drivers/vfio/vfio.c:2361: warning: expecting prototype for class support(). Prototype was for vfio_devnode() instead
vim +293 drivers/vfio/vfio.c
cba3345cc494ad Alex Williamson 2012-07-31 285 cba3345cc494ad Alex Williamson 2012-07-31 286 /** cba3345cc494ad Alex Williamson 2012-07-31 287 * Container objects - containers are created when /dev/vfio/vfio is cba3345cc494ad Alex Williamson 2012-07-31 288 * opened, but their lifecycle extends until the last user is done, so cba3345cc494ad Alex Williamson 2012-07-31 289 * it's freed via kref. Must support container/group/device being cba3345cc494ad Alex Williamson 2012-07-31 290 * closed in any order. cba3345cc494ad Alex Williamson 2012-07-31 291 */ cba3345cc494ad Alex Williamson 2012-07-31 292 static void vfio_container_get(struct vfio_container *container) cba3345cc494ad Alex Williamson 2012-07-31 @293 { cba3345cc494ad Alex Williamson 2012-07-31 294 kref_get(&container->kref); cba3345cc494ad Alex Williamson 2012-07-31 295 } cba3345cc494ad Alex Williamson 2012-07-31 296 cba3345cc494ad Alex Williamson 2012-07-31 297 static void vfio_container_release(struct kref *kref) cba3345cc494ad Alex Williamson 2012-07-31 298 { cba3345cc494ad Alex Williamson 2012-07-31 299 struct vfio_container *container; cba3345cc494ad Alex Williamson 2012-07-31 300 container = container_of(kref, struct vfio_container, kref); cba3345cc494ad Alex Williamson 2012-07-31 301 cba3345cc494ad Alex Williamson 2012-07-31 302 kfree(container); cba3345cc494ad Alex Williamson 2012-07-31 303 } cba3345cc494ad Alex Williamson 2012-07-31 304 cba3345cc494ad Alex Williamson 2012-07-31 305 static void vfio_container_put(struct vfio_container *container) cba3345cc494ad Alex Williamson 2012-07-31 306 { cba3345cc494ad Alex Williamson 2012-07-31 307 kref_put(&container->kref, vfio_container_release); cba3345cc494ad Alex Williamson 2012-07-31 308 } cba3345cc494ad Alex Williamson 2012-07-31 309 9df7b25ab71cee Jiang Liu 2012-12-07 310 static void vfio_group_unlock_and_free(struct vfio_group *group) 9df7b25ab71cee Jiang Liu 2012-12-07 311 { 9df7b25ab71cee Jiang Liu 2012-12-07 312 mutex_unlock(&vfio.group_lock); 9df7b25ab71cee Jiang Liu 2012-12-07 313 /* 9df7b25ab71cee Jiang Liu 2012-12-07 314 * Unregister outside of lock. A spurious callback is harmless now 9df7b25ab71cee Jiang Liu 2012-12-07 315 * that the group is no longer in vfio.group_list. 9df7b25ab71cee Jiang Liu 2012-12-07 316 */ 9df7b25ab71cee Jiang Liu 2012-12-07 317 iommu_group_unregister_notifier(group->iommu_group, &group->nb); 9df7b25ab71cee Jiang Liu 2012-12-07 318 kfree(group); 9df7b25ab71cee Jiang Liu 2012-12-07 319 } 9df7b25ab71cee Jiang Liu 2012-12-07 320 cba3345cc494ad Alex Williamson 2012-07-31 321 /** cba3345cc494ad Alex Williamson 2012-07-31 322 * Group objects - create, release, get, put, search cba3345cc494ad Alex Williamson 2012-07-31 323 */ 16ab8a5cbea463 Alex Williamson 2016-01-27 324 static struct vfio_group *vfio_create_group(struct iommu_group *iommu_group) cba3345cc494ad Alex Williamson 2012-07-31 @325 { cba3345cc494ad Alex Williamson 2012-07-31 326 struct vfio_group *group, *tmp; cba3345cc494ad Alex Williamson 2012-07-31 327 struct device *dev; cba3345cc494ad Alex Williamson 2012-07-31 328 int ret, minor; cba3345cc494ad Alex Williamson 2012-07-31 329 cba3345cc494ad Alex Williamson 2012-07-31 330 group = kzalloc(sizeof(*group), GFP_KERNEL); cba3345cc494ad Alex Williamson 2012-07-31 331 if (!group) cba3345cc494ad Alex Williamson 2012-07-31 332 return ERR_PTR(-ENOMEM); cba3345cc494ad Alex Williamson 2012-07-31 333 cba3345cc494ad Alex Williamson 2012-07-31 334 kref_init(&group->kref); cba3345cc494ad Alex Williamson 2012-07-31 335 INIT_LIST_HEAD(&group->device_list); cba3345cc494ad Alex Williamson 2012-07-31 336 mutex_init(&group->device_lock); 60720a0fc6469e Alex Williamson 2015-02-06 337 INIT_LIST_HEAD(&group->unbound_list); 60720a0fc6469e Alex Williamson 2015-02-06 338 mutex_init(&group->unbound_lock); cba3345cc494ad Alex Williamson 2012-07-31 339 atomic_set(&group->container_users, 0); 6d6768c61b39a2 Alex Williamson 2013-06-25 340 atomic_set(&group->opened, 0); 6586b561a91cd8 Alex Williamson 2017-08-17 341 init_waitqueue_head(&group->container_q); cba3345cc494ad Alex Williamson 2012-07-31 342 group->iommu_group = iommu_group; 16ab8a5cbea463 Alex Williamson 2016-01-27 343 #ifdef CONFIG_VFIO_NOIOMMU 16ab8a5cbea463 Alex Williamson 2016-01-27 344 group->noiommu = (iommu_group_get_iommudata(iommu_group) == &noiommu); 16ab8a5cbea463 Alex Williamson 2016-01-27 345 #endif ccd46dbae77dbf Jike Song 2016-12-01 346 BLOCKING_INIT_NOTIFIER_HEAD(&group->notifier); cba3345cc494ad Alex Williamson 2012-07-31 347 cba3345cc494ad Alex Williamson 2012-07-31 348 group->nb.notifier_call = vfio_iommu_group_notifier; cba3345cc494ad Alex Williamson 2012-07-31 349 cba3345cc494ad Alex Williamson 2012-07-31 350 /* cba3345cc494ad Alex Williamson 2012-07-31 351 * blocking notifiers acquire a rwsem around registering and hold cba3345cc494ad Alex Williamson 2012-07-31 352 * it around callback. Therefore, need to register outside of cba3345cc494ad Alex Williamson 2012-07-31 353 * vfio.group_lock to avoid A-B/B-A contention. Our callback won't cba3345cc494ad Alex Williamson 2012-07-31 354 * do anything unless it can find the group in vfio.group_list, so cba3345cc494ad Alex Williamson 2012-07-31 355 * no harm in registering early. cba3345cc494ad Alex Williamson 2012-07-31 356 */ cba3345cc494ad Alex Williamson 2012-07-31 357 ret = iommu_group_register_notifier(iommu_group, &group->nb); cba3345cc494ad Alex Williamson 2012-07-31 358 if (ret) { cba3345cc494ad Alex Williamson 2012-07-31 359 kfree(group); cba3345cc494ad Alex Williamson 2012-07-31 360 return ERR_PTR(ret); cba3345cc494ad Alex Williamson 2012-07-31 361 } cba3345cc494ad Alex Williamson 2012-07-31 362 cba3345cc494ad Alex Williamson 2012-07-31 363 mutex_lock(&vfio.group_lock); cba3345cc494ad Alex Williamson 2012-07-31 364 cba3345cc494ad Alex Williamson 2012-07-31 365 /* Did we race creating this group? */ cba3345cc494ad Alex Williamson 2012-07-31 366 list_for_each_entry(tmp, &vfio.group_list, vfio_next) { cba3345cc494ad Alex Williamson 2012-07-31 367 if (tmp->iommu_group == iommu_group) { cba3345cc494ad Alex Williamson 2012-07-31 368 vfio_group_get(tmp); 9df7b25ab71cee Jiang Liu 2012-12-07 369 vfio_group_unlock_and_free(group); cba3345cc494ad Alex Williamson 2012-07-31 370 return tmp; cba3345cc494ad Alex Williamson 2012-07-31 371 } cba3345cc494ad Alex Williamson 2012-07-31 372 } cba3345cc494ad Alex Williamson 2012-07-31 373 2f51bf4be99386 Zhen Lei 2015-03-16 374 minor = vfio_alloc_group_minor(group); 2f51bf4be99386 Zhen Lei 2015-03-16 375 if (minor < 0) { 2f51bf4be99386 Zhen Lei 2015-03-16 376 vfio_group_unlock_and_free(group); 2f51bf4be99386 Zhen Lei 2015-03-16 377 return ERR_PTR(minor); 2f51bf4be99386 Zhen Lei 2015-03-16 378 } 2f51bf4be99386 Zhen Lei 2015-03-16 379 d10999016f4164 Alex Williamson 2013-12-19 380 dev = device_create(vfio.class, NULL, d10999016f4164 Alex Williamson 2013-12-19 381 MKDEV(MAJOR(vfio.group_devt), minor), 03a76b60f8ba27 Alex Williamson 2015-12-21 382 group, "%s%d", group->noiommu ? "noiommu-" : "", 03a76b60f8ba27 Alex Williamson 2015-12-21 383 iommu_group_id(iommu_group)); cba3345cc494ad Alex Williamson 2012-07-31 384 if (IS_ERR(dev)) { cba3345cc494ad Alex Williamson 2012-07-31 385 vfio_free_group_minor(minor); 9df7b25ab71cee Jiang Liu 2012-12-07 386 vfio_group_unlock_and_free(group); 7b3a10df1d4bd8 Dan Carpenter 2017-05-18 387 return ERR_CAST(dev); cba3345cc494ad Alex Williamson 2012-07-31 388 } cba3345cc494ad Alex Williamson 2012-07-31 389 cba3345cc494ad Alex Williamson 2012-07-31 390 group->minor = minor; cba3345cc494ad Alex Williamson 2012-07-31 391 group->dev = dev; cba3345cc494ad Alex Williamson 2012-07-31 392 cba3345cc494ad Alex Williamson 2012-07-31 393 list_add(&group->vfio_next, &vfio.group_list); cba3345cc494ad Alex Williamson 2012-07-31 394 cba3345cc494ad Alex Williamson 2012-07-31 395 mutex_unlock(&vfio.group_lock); cba3345cc494ad Alex Williamson 2012-07-31 396 cba3345cc494ad Alex Williamson 2012-07-31 397 return group; cba3345cc494ad Alex Williamson 2012-07-31 398 } cba3345cc494ad Alex Williamson 2012-07-31 399
:::::: The code at line 293 was first introduced by commit :::::: cba3345cc494ad286ca8823f44b2c16cae496679 vfio: VFIO core
:::::: TO: Alex Williamson <alex.williamson@redhat.com> :::::: CC: Alex Williamson <alex.williamson@redhat.com>
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |