From: kernel test robot <lkp@intel.com>
To: Yi Liu <yi.l.liu@intel.com>, Kevin Tian <kevin.tian@intel.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: [yiliu1765-iommufd:iommufd-v5.19-rc5 84/104] drivers/iommu/iommufd/device.c:72: warning: Function parameter or member 'flags' not described in 'iommufd_bind_device'
Date: Mon, 13 Nov 2023 02:23:17 +0800 [thread overview]
Message-ID: <202311130251.Ms1SvRC0-lkp@intel.com> (raw)
tree: https://github.com/yiliu1765/iommufd.git iommufd-v5.19-rc5
head: f200d9a1de755f3bb98e21535e22b9adf6ba83f7
commit: 4e9347bc44832ec0e1557796ed0b42674a960a4e [84/104] iommufd: Add driver facing API for PASID support
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231113/202311130251.Ms1SvRC0-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231113/202311130251.Ms1SvRC0-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311130251.Ms1SvRC0-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/iommu/iommufd/device.c:72: warning: Function parameter or member 'dev' not described in 'iommufd_bind_device'
>> drivers/iommu/iommufd/device.c:72: warning: Function parameter or member 'flags' not described in 'iommufd_bind_device'
drivers/iommu/iommufd/device.c:72: warning: Excess function parameter 'pdev' description in 'iommufd_bind_device'
vim +72 drivers/iommu/iommufd/device.c
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 53
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 54 /**
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 55 * iommufd_bind_device - Bind a physical device to an iommu fd
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 56 * @fd: iommufd file descriptor.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 57 * @pdev: Pointer to a physical PCI device struct
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 58 * @id: Output ID number to return to userspace for this device
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 59 *
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 60 * A successful bind establishes an ownership over the device and returns
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 61 * struct iommufd_device pointer, otherwise returns error pointer.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 62 *
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 63 * A driver using this API must set driver_managed_dma and must not touch
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 64 * the device until this routine succeeds and establishes ownership.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 65 *
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 66 * Binding a PCI device places the entire RID under iommufd control.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 67 *
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 68 * The caller must undo this with iommufd_unbind_device()
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 69 */
4e9347bc44832e Yi Liu 2022-06-22 70 struct iommufd_device *iommufd_bind_device(int fd, struct device *dev,
4e9347bc44832e Yi Liu 2022-06-22 71 unsigned int flags, u32 *id)
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 @72 {
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 73 struct iommufd_device *idev;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 74 struct iommufd_ctx *ictx;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 75 struct iommu_group *group;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 76 int rc;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 77
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 78 /*
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 79 * iommufd always sets IOMMU_CACHE because we offer no way for userspace
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 80 * to restore cache coherency.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 81 */
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 82 if (!iommu_capable(dev->bus, IOMMU_CAP_CACHE_COHERENCY))
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 83 return ERR_PTR(-EINVAL);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 84
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 85 ictx = iommufd_fget(fd);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 86 if (!ictx)
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 87 return ERR_PTR(-EINVAL);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 88
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 89 group = iommu_group_get(dev);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 90 if (!group) {
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 91 rc = -ENODEV;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 92 goto out_file_put;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 93 }
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 94
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 95 /*
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 96 * FIXME: Use a device-centric iommu api and this won't work with
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 97 * multi-device groups
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 98 */
4e9347bc44832e Yi Liu 2022-06-22 99 if (!(flags & IOMMUFD_BIND_FLAGS_BYPASS_DMA_OWNERSHIP)) {
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 100 rc = iommu_group_claim_dma_owner(group, ictx->filp);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 101 if (rc)
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 102 goto out_group_put;
4e9347bc44832e Yi Liu 2022-06-22 103 }
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 104
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 105 idev = iommufd_object_alloc(ictx, idev, IOMMUFD_OBJ_DEVICE);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 106 if (IS_ERR(idev)) {
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 107 rc = PTR_ERR(idev);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 108 goto out_release_owner;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 109 }
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 110 idev->ictx = ictx;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 111 idev->dev = dev;
4e9347bc44832e Yi Liu 2022-06-22 112 idev->dma_owner_claimed =
4e9347bc44832e Yi Liu 2022-06-22 113 !(flags & IOMMUFD_BIND_FLAGS_BYPASS_DMA_OWNERSHIP);
4e9347bc44832e Yi Liu 2022-06-22 114 xa_init_flags(&idev->pasid_xa, XA_FLAGS_ALLOC | XA_FLAGS_ACCOUNT);
4e9347bc44832e Yi Liu 2022-06-22 115 mutex_init(&idev->pasid_lock);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 116 /* The calling driver is a user until iommufd_unbind_device() */
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 117 refcount_inc(&idev->obj.users);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 118 /* group refcount moves into iommufd_device */
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 119 idev->group = group;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 120
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 121 /*
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 122 * If the caller fails after this success it must call
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 123 * iommufd_unbind_device() which is safe since we hold this refcount.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 124 * This also means the device is a leaf in the graph and no other object
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 125 * can take a reference on it.
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 126 */
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 127 iommufd_object_finalize(ictx, &idev->obj);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 128 *id = idev->obj.id;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 129 return idev;
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 130 out_release_owner:
4e9347bc44832e Yi Liu 2022-06-22 131 if ((!flags & IOMMUFD_BIND_FLAGS_BYPASS_DMA_OWNERSHIP))
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 132 iommu_group_release_dma_owner(group);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 133 out_group_put:
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 134 iommu_group_put(group);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 135 out_file_put:
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 136 fput(ictx->filp);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 137 return ERR_PTR(rc);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 138 }
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 139 EXPORT_SYMBOL_GPL(iommufd_bind_device);
6f915f4df4ae49 Jason Gunthorpe 2021-11-11 140
:::::: The code at line 72 was first introduced by commit
:::::: 6f915f4df4ae494e0d6d26991ddc8ebb672f9101 iommufd: Add kAPI toward external drivers
:::::: TO: Jason Gunthorpe <jgg@nvidia.com>
:::::: CC: Yi Liu <yi.l.liu@intel.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2023-11-12 18:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202311130251.Ms1SvRC0-lkp@intel.com \
--to=lkp@intel.com \
--cc=kevin.tian@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=yi.l.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.