[jgunthorpe:iommufd 19/20] drivers/iommu/iommufd/device.c:58: warning: expecting prototype for iommufd_bind_device(). Prototype was for iommufd_bind_pci_device() instead
From: kernel test robot
Date: Fri Nov 12 2021 - 21:55:53 EST
tree: https://github.com/jgunthorpe/linux iommufd
head: 17bcea24295e34cf0f061dd3bdbb747b63a1933e
commit: a262a567f972f2a4910e3b85bb5620f981dd8229 [19/20] iommufd: Add kAPI toward external drivers
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/jgunthorpe/linux/commit/a262a567f972f2a4910e3b85bb5620f981dd8229
git remote add jgunthorpe https://github.com/jgunthorpe/linux
git fetch --no-tags jgunthorpe iommufd
git checkout a262a567f972f2a4910e3b85bb5620f981dd8229
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/iommu/iommufd/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
drivers/iommu/iommufd/device.c:58: warning: Function parameter or member 'pdev' not described in 'iommufd_bind_pci_device'
>> drivers/iommu/iommufd/device.c:58: warning: expecting prototype for iommufd_bind_device(). Prototype was for iommufd_bind_pci_device() instead
vim +58 drivers/iommu/iommufd/device.c
38
39 /**
40 * iommufd_bind_device - Bind a physical device marked by a device
41 * cookie to an iommu fd.
42 * @fd: iommufd file descriptor.
43 * @dev: Pointer to a physical device struct.
44 * @id: ID number to return to userspace for this device
45 * @dev_cookie: A cookie that is returned to userspace in events
46 *
47 * A successful bind establishes a security context for the device and returns
48 * struct iommufd_device pointer. Otherwise returns error pointer. An external
49 * driver must call this function before touching the pci_dev in any way. Until
50 * it returns the pci_dev could be subject to external manipulation via PCI P2P.
51 *
52 * Binding a PCI device places the entire base RID under iommufd control.
53 *
54 * The caller must undo this with iommufd_unbind_device()
55 */
56 struct iommufd_device *iommufd_bind_pci_device(int fd, struct pci_dev *pdev,
57 u32 *id, u64 dev_cookie)
> 58 {
59 struct iommufd_device *idev;
60 struct iommufd_ctx *ictx;
61 int rc;
62
63 ictx = iommufd_fget(fd);
64 if (!ictx)
65 return ERR_PTR(-EINVAL);
66
67 rc = iommu_device_set_dma_owner(&pdev->dev, DMA_OWNER_USER, ictx->filp);
68 if (rc)
69 goto out_file_put;
70
71 idev = iommufd_object_alloc(ictx, idev, IOMMUFD_OBJ_DEVICE);
72 if (IS_ERR(idev)) {
73 rc = PTR_ERR(idev);
74 goto out_release_owner;
75 }
76 idev->dev = &pdev->dev;
77 idev->dev_cookie = dev_cookie;
78 /* The calling driver is a user until iommufd_unbind_device() */
79 refcount_inc(&idev->obj.users);
80
81 /*
82 * If the caller fails after this success it must call
83 * iommufd_unbind_device() which is safe since we hold this refcount.
84 * This also means the device is a leaf in the graph and no other object
85 * can take a reference on it.
86 */
87 iommufd_object_finalize(ictx, &idev->obj);
88 *id = idev->obj.id;
89 return idev;
90
91 out_release_owner:
92 iommu_device_release_dma_owner(&pdev->dev, DMA_OWNER_USER);
93 out_file_put:
94 fput(ictx->filp);
95 return ERR_PTR(rc);
96 }
97 EXPORT_SYMBOL_GPL(iommufd_bind_pci_device);
98
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip