From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2386095535237748908==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: drivers/vfio/vfio.c:293: warning: expecting prototype for Container objects(). Prototype was for vfio_container_get() instead Date: Wed, 10 Nov 2021 23:12:39 +0800 Message-ID: <202111102328.WDUm0Bl7-lkp@intel.com> List-Id: --===============2386095535237748908== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=3D1 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.gi= t/commit/?id=3D179209fa12709a3df8888c323b37315da2683c24 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/gi= t/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=3D$HOME/0day COMPILER=3Dgcc-11.2.0 make.cross= O=3Dbuild_dir ARCH=3Dmicroblaze SHELL=3D/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/a= mdgpu_dm/ drivers/gpu/drm/amd/display/dc/dce/ drivers/gpu/drm/amd/display/d= c/dce110/ drivers/gpu/drm/exynos/ drivers/i3c/ drivers/iio/accel/ drivers/m= emstick/host/ drivers/misc/ drivers/nvmem/ drivers/pci/ drivers/phy/qualcom= m/ drivers/power/supply/ drivers/rapidio/ drivers/rtc/ drivers/soc/qcom/ dr= ivers/thermal/ drivers/tty/ drivers/vfio/ drivers/video/fbdev/ drivers/w1/m= asters/ 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 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 r= egistration(). Prototype was for vfio_register_iommu_driver() instead drivers/vfio/vfio.c:273: warning: Function parameter or member 'group' n= ot described in 'vfio_alloc_group_minor' drivers/vfio/vfio.c:273: warning: expecting prototype for free(). Protot= ype was for vfio_alloc_group_minor() instead drivers/vfio/vfio.c:293: warning: Function parameter or member 'containe= r' not described in 'vfio_container_get' >> drivers/vfio/vfio.c:293: warning: expecting prototype for Container obje= cts(). Prototype was for vfio_container_get() instead drivers/vfio/vfio.c:325: warning: Function parameter or member 'iommu_gr= oup' 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' n= ot 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_d= ata' 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' n= ot 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 s= upport(). 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_d= ata' not described in 'vfio_add_group_dev' drivers/vfio/vfio.c:806: warning: expecting prototype for VFIO driver AP= I(). 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 'contain= er' not described in 'vfio_ioctl_check_extension' drivers/vfio/vfio.c:1022: warning: Function parameter or member 'arg' no= t described in 'vfio_ioctl_check_extension' drivers/vfio/vfio.c:1022: warning: expecting prototype for vfio(). Proto= type 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(). Prot= otype 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 f= d(). 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' n= ot described in 'vfio_info_cap_add' drivers/vfio/vfio.c:1824: warning: Function parameter or member 'size' n= ot 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(). Protot= ype was for vfio_info_cap_add() instead drivers/vfio/vfio.c:2361: warning: Function parameter or member 'dev' no= t described in 'vfio_devnode' drivers/vfio/vfio.c:2361: warning: Function parameter or member 'mode' n= ot 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 - cont= ainers are created when /dev/vfio/vfio is cba3345cc494ad Alex Williamson 2012-07-31 288 * opened, but their lifecy= cle extends until the last user is done, so cba3345cc494ad Alex Williamson 2012-07-31 289 * it's freed via kref. Mu= st 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 *con= tainer; cba3345cc494ad Alex Williamson 2012-07-31 300 container =3D 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_unlo= ck_and_free(struct vfio_group *group) 9df7b25ab71cee Jiang Liu 2012-12-07 311 { 9df7b25ab71cee Jiang Liu 2012-12-07 312 mutex_unlock(&vfio.group_l= ock); 9df7b25ab71cee Jiang Liu 2012-12-07 313 /* 9df7b25ab71cee Jiang Liu 2012-12-07 314 * Unregister outside of l= ock. A spurious callback is harmless now 9df7b25ab71cee Jiang Liu 2012-12-07 315 * that the group is no lo= nger in vfio.group_list. 9df7b25ab71cee Jiang Liu 2012-12-07 316 */ 9df7b25ab71cee Jiang Liu 2012-12-07 317 iommu_group_unregister_not= ifier(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 *v= fio_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 =3D 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->dev= ice_list); cba3345cc494ad Alex Williamson 2012-07-31 336 mutex_init(&group->device_= lock); 60720a0fc6469e Alex Williamson 2015-02-06 337 INIT_LIST_HEAD(&group->unb= ound_list); 60720a0fc6469e Alex Williamson 2015-02-06 338 mutex_init(&group->unbound= _lock); cba3345cc494ad Alex Williamson 2012-07-31 339 atomic_set(&group->contain= er_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 =3D iom= mu_group; 16ab8a5cbea463 Alex Williamson 2016-01-27 343 #ifdef CONFIG_VFIO_NOIOMMU 16ab8a5cbea463 Alex Williamson 2016-01-27 344 group->noiommu =3D (iommu_= group_get_iommudata(iommu_group) =3D=3D &noiommu); 16ab8a5cbea463 Alex Williamson 2016-01-27 345 #endif ccd46dbae77dbf Jike Song 2016-12-01 346 BLOCKING_INIT_NOTIFIER_HEA= D(&group->notifier); cba3345cc494ad Alex Williamson 2012-07-31 347 = cba3345cc494ad Alex Williamson 2012-07-31 348 group->nb.notifier_call = =3D 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 acqu= ire a rwsem around registering and hold cba3345cc494ad Alex Williamson 2012-07-31 352 * it around callback. Th= erefore, need to register outside of cba3345cc494ad Alex Williamson 2012-07-31 353 * vfio.group_lock to avoi= d A-B/B-A contention. Our callback won't cba3345cc494ad Alex Williamson 2012-07-31 354 * do anything unless it c= an 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 =3D iommu_group_regist= er_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_loc= k); cba3345cc494ad Alex Williamson 2012-07-31 364 = cba3345cc494ad Alex Williamson 2012-07-31 365 /* Did we race creating th= is 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 =3D= =3D iommu_group) { cba3345cc494ad Alex Williamson 2012-07-31 368 vfio_group_get(tmp); 9df7b25ab71cee Jiang Liu 2012-12-07 369 vfio_group_unlock_and_fr= ee(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 =3D 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_fre= e(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 =3D device_create(vfio= .class, NULL, d10999016f4164 Alex Williamson 2013-12-19 381 MKDEV(MAJOR(vfio.gro= up_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(min= or); 9df7b25ab71cee Jiang Liu 2012-12-07 386 vfio_group_unlock_and_fre= e(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 =3D minor; cba3345cc494ad Alex Williamson 2012-07-31 391 group->dev =3D 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_l= ock); 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 :::::: CC: Alex Williamson --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============2386095535237748908== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 EmP9vkr13c7/A9UsZy5eygEA --===============2386095535237748908==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 225F8C433F5 for ; Wed, 10 Nov 2021 15:13:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E890C61105 for ; Wed, 10 Nov 2021 15:13:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232334AbhKJPQj (ORCPT ); Wed, 10 Nov 2021 10:16:39 -0500 Received: from mga11.intel.com ([192.55.52.93]:46950 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231990AbhKJPQh (ORCPT ); Wed, 10 Nov 2021 10:16:37 -0500 X-IronPort-AV: E=McAfee;i="6200,9189,10164"; a="230151377" X-IronPort-AV: E=Sophos;i="5.87,224,1631602800"; d="gz'50?scan'50,208,50";a="230151377" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Nov 2021 07:13:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,224,1631602800"; d="gz'50?scan'50,208,50";a="534078519" Received: from lkp-server02.sh.intel.com (HELO c20d8bc80006) ([10.239.97.151]) by orsmga001.jf.intel.com with ESMTP; 10 Nov 2021 07:13:47 -0800 Received: from kbuild by c20d8bc80006 with local (Exim 4.92) (envelope-from ) id 1mkpII-000F7v-Dx; Wed, 10 Nov 2021 15:13:46 +0000 Date: Wed, 10 Nov 2021 23:12:39 +0800 From: kernel test robot To: Jason Gunthorpe Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Alex Williamson , Eric Auger Subject: drivers/vfio/vfio.c:293: warning: expecting prototype for Container objects(). Prototype was for vfio_container_get() instead Message-ID: <202111102328.WDUm0Bl7-lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="bg08WKrSYDhXBjb5" Content-Disposition: inline User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --bg08WKrSYDhXBjb5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 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 :::::: CC: Alex Williamson --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --bg08WKrSYDhXBjb5 Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 3c7/A9UsZy5eygEA --bg08WKrSYDhXBjb5--