linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Baolu Lu <baolu.lu@linux.intel.com>
Cc: Yi Liu <yi.l.liu@intel.com>,
	joro@8bytes.org, alex.williamson@redhat.com,
	kevin.tian@intel.com, robin.murphy@arm.com, cohuck@redhat.com,
	eric.auger@redhat.com, nicolinc@nvidia.com, kvm@vger.kernel.org,
	mjrosato@linux.ibm.com, chao.p.peng@linux.intel.com,
	yi.y.sun@linux.intel.com, peterx@redhat.com, jasowang@redhat.com,
	shameerali.kolothum.thodi@huawei.com, lulu@redhat.com,
	suravee.suthikulpanit@amd.com, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	zhenzhong.duan@intel.com, joao.m.martins@oracle.com
Subject: Re: [PATCH v4 01/17] iommu: Add hwpt_type with user_data for domain_alloc_user op
Date: Mon, 25 Sep 2023 10:00:29 -0300	[thread overview]
Message-ID: <20230925130029.GZ13733@nvidia.com> (raw)
In-Reply-To: <473d4050-2f2a-f9a2-6c40-3efd5b582b4e@linux.intel.com>

On Mon, Sep 25, 2023 at 04:01:55PM +0800, Baolu Lu wrote:
> On 2023/9/25 14:22, Yi Liu wrote:
> > On 2023/9/21 20:10, Baolu Lu wrote:
> > > On 2023/9/21 15:51, Yi Liu wrote:
> > > > +/**
> > > > + * iommu_copy_user_data - Copy iommu driver specific user space data
> > > > + * @dst_data: Pointer to an iommu driver specific user data
> > > > that is defined in
> > > > + *            include/uapi/linux/iommufd.h
> > > > + * @src_data: Pointer to a struct iommu_user_data for user
> > > > space data info
> > > > + * @data_len: Length of current user data structure, i.e.
> > > > sizeof(struct _dst)
> > > > + * @min_len: Initial length of user data structure for backward
> > > > compatibility.
> > > > + *           This should be offsetofend using the last member
> > > > in the user data
> > > > + *           struct that was initially added to
> > > > include/uapi/linux/iommufd.h
> > > > + */
> > > > +static inline int iommu_copy_user_data(void *dst_data,
> > > > +                       const struct iommu_user_data *src_data,
> > > > +                       size_t data_len, size_t min_len)
> > > > +{
> > > > +    if (WARN_ON(!dst_data || !src_data))
> > > > +        return -EINVAL;
> > > > +    if (src_data->len < min_len || data_len < src_data->len)
> > > > +        return -EINVAL;
> > > > +    return copy_struct_from_user(dst_data, data_len,
> > > > +                     src_data->uptr, src_data->len);
> > > > +}
> > > 
> > > I am not sure that I understand the purpose of "min_len" correctly. It
> > > seems like it would always be equal to data_len?
> > 
> > no, it will not be equal to data_len once there is extension in the
> > uAPI structure.
> > 
> > > Or, it means the minimal data length that the iommu driver requires?
> > 
> > it is the minimal data length the uAPI requires. min_len is finalized
> > per the upstream of the first version of the uAPI.
> 
> So, it looks like a constant. Perhaps we should document it in the
> uapi/iommuf.h and avoid using it as a parameter of a helper
> function?

It is per-driver, per-struct, so this is the right way to do it

Jason

  reply	other threads:[~2023-09-25 13:00 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-21  7:51 [PATCH v4 00/17] iommufd: Add nesting infrastructure Yi Liu
2023-09-21  7:51 ` [PATCH v4 01/17] iommu: Add hwpt_type with user_data for domain_alloc_user op Yi Liu
2023-09-21 12:10   ` Baolu Lu
2023-09-21 20:58     ` Nicolin Chen
2023-09-25 13:05       ` Jason Gunthorpe
2023-09-25 18:17         ` Nicolin Chen
2023-09-25  6:22     ` Yi Liu
2023-09-25  8:01       ` Baolu Lu
2023-09-25 13:00         ` Jason Gunthorpe [this message]
2023-09-21 12:12   ` Baolu Lu
2023-09-21 16:44     ` Jason Gunthorpe
2023-09-22  9:47       ` Robin Murphy
2023-09-25  6:17         ` Yi Liu
2023-09-25 12:59           ` Jason Gunthorpe
2023-09-26  6:37         ` Tian, Kevin
2023-09-26 16:29           ` Jason Gunthorpe
2023-09-27  1:08             ` Tian, Kevin
2023-10-07  9:38               ` Yi Liu
2023-09-26  6:56   ` Tian, Kevin
2023-10-12  9:12     ` Yi Liu
2023-10-13 11:42       ` Yi Liu
2023-10-13 22:22         ` Nicolin Chen
2023-10-10 16:58   ` Jason Gunthorpe
2023-10-12  9:11     ` Yi Liu
2023-10-12 13:39       ` Jason Gunthorpe
2023-10-13  4:33         ` Yi Liu
2023-10-13 14:04           ` Jason Gunthorpe
2023-10-13 17:56             ` Nicolin Chen
2023-10-16  3:28               ` Yi Liu
2023-10-16 11:54                 ` Jason Gunthorpe
2023-10-16 18:17                   ` Nicolin Chen
2023-10-17  8:51                     ` Yi Liu
2023-10-17  9:28                       ` Tian, Kevin
2023-10-18  6:12                         ` Yi Liu
2023-10-18 16:37                     ` Jason Gunthorpe
2023-10-18 16:51                       ` Nicolin Chen
2023-10-13  0:34     ` Nicolin Chen
2023-10-13 14:03       ` Jason Gunthorpe
2023-09-21  7:51 ` [PATCH v4 02/17] iommu: Add nested domain support Yi Liu
2023-10-10 17:21   ` Jason Gunthorpe
2023-10-12  9:13     ` Yi Liu
2023-10-14  0:47       ` Nicolin Chen
2023-09-21  7:51 ` [PATCH v4 03/17] iommufd: Unite all kernel-managed members into a struct Yi Liu
2023-09-26  7:46   ` Tian, Kevin
2023-10-07 10:08   ` Yan Zhao
2023-10-09  4:13     ` Yi Liu
2023-10-09  5:13       ` Yan Zhao
2023-10-10  3:26         ` Yi Liu
2023-09-21  7:51 ` [PATCH v4 04/17] iommufd: Pass in hwpt_type/user_data to iommufd_hw_pagetable_alloc() Yi Liu
2023-09-21  7:51 ` [PATCH v4 05/17] iommufd: Separate kernel-managed HWPT alloc/destroy/abort functions Yi Liu
2023-09-26  7:57   ` Tian, Kevin
2023-10-10 18:49   ` Jason Gunthorpe
2023-10-12 19:09     ` Jason Gunthorpe
2023-10-13  7:13       ` Tian, Kevin
2023-10-13 14:05         ` Jason Gunthorpe
2023-10-16  8:26           ` Tian, Kevin
2023-10-16 12:02             ` Jason Gunthorpe
2023-09-21  7:51 ` [PATCH v4 06/17] iommufd: Add shared alloc_fn function pointer and mutex pointer Yi Liu
2023-09-21  7:51 ` [PATCH v4 07/17] iommufd: Add user-managed hw_pagetable support Yi Liu
2023-09-26  8:14   ` Tian, Kevin
2023-10-14  0:08     ` Nicolin Chen
2023-09-21  7:51 ` [PATCH v4 08/17] iommufd: Always setup MSI and anforce cc on kernel-managed domains Yi Liu
2023-09-26  8:16   ` Tian, Kevin
2023-10-14  0:44     ` Nicolin Chen
2023-10-16  8:48       ` Tian, Kevin
2023-10-16 11:57         ` Jason Gunthorpe
2023-10-17  8:52           ` Tian, Kevin
2023-10-17 15:53             ` Jason Gunthorpe
2023-10-17 19:58               ` Nicolin Chen
2023-10-18 16:51                 ` Jason Gunthorpe
2023-10-19  1:56                   ` Tian, Kevin
2023-10-19 23:53                     ` Jason Gunthorpe
2023-10-20  2:43                       ` Tian, Kevin
2023-10-20 13:55                         ` Jason Gunthorpe
2023-10-20 18:59                           ` Nicolin Chen
2023-10-21 16:38                             ` Jason Gunthorpe
2023-10-23  0:18                               ` Nicolin Chen
2023-10-23  2:53                                 ` Tian, Kevin
2023-10-23 18:42                                   ` Nicolin Chen
2023-10-23 13:59                                 ` Jason Gunthorpe
2023-10-23 18:49                                   ` Nicolin Chen
2023-10-18  2:32             ` Baolu Lu
2023-10-17  9:05           ` Tian, Kevin
2023-09-21  7:51 ` [PATCH v4 09/17] iommufd/device: Add helpers to enforce/remove device reserved regions Yi Liu
2023-10-07  7:20   ` Yan Zhao
2023-10-07  9:27     ` Nicolin Chen
2023-09-21  7:51 ` [PATCH v4 10/17] iommufd: Support IOMMU_HWPT_ALLOC allocation with user data Yi Liu
2023-10-13 15:19   ` Jason Gunthorpe
2023-10-13 20:58     ` Nicolin Chen
2023-10-14  0:07       ` Jason Gunthorpe
2023-10-14  0:51         ` Nicolin Chen
2023-10-16  7:03           ` Yi Liu
2023-10-16 11:59             ` Jason Gunthorpe
2023-10-16 18:44               ` Nicolin Chen
2023-10-17  8:55                 ` Yi Liu
2023-10-17 15:50                   ` Jason Gunthorpe
2023-10-17 19:32                     ` Nicolin Chen
2023-09-21  7:51 ` [PATCH v4 11/17] iommufd: Add IOMMU_HWPT_INVALIDATE Yi Liu
2023-09-21  7:51 ` [PATCH v4 12/17] iommufd/selftest: Rework TEST_LENGTH to test min_size explicitly Yi Liu
2023-09-21  7:51 ` [PATCH v4 13/17] iommufd/selftest: Add nested domain allocation for mock domain Yi Liu
2023-09-21  7:51 ` [PATCH v4 14/17] iommufd/selftest: Add coverage for IOMMU_HWPT_ALLOC with nested HWPTs Yi Liu
2023-09-21  7:51 ` [PATCH v4 15/17] iommufd/selftest: Add mock_domain_cache_invalidate_user support Yi Liu
2023-09-21  7:51 ` [PATCH v4 16/17] iommufd/selftest: Add IOMMU_TEST_OP_MD_CHECK_IOTLB test op Yi Liu
2023-09-21  7:51 ` [PATCH v4 17/17] iommufd/selftest: Add coverage for IOMMU_HWPT_INVALIDATE ioctl Yi Liu
2023-10-10 16:53 ` [PATCH v4 00/17] iommufd: Add nesting infrastructure Jason Gunthorpe
2023-10-12  8:45   ` Yi Liu

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=20230925130029.GZ13733@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=alex.williamson@redhat.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chao.p.peng@linux.intel.com \
    --cc=cohuck@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=iommu@lists.linux.dev \
    --cc=jasowang@redhat.com \
    --cc=joao.m.martins@oracle.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=lulu@redhat.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=nicolinc@nvidia.com \
    --cc=peterx@redhat.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=yi.l.liu@intel.com \
    --cc=yi.y.sun@linux.intel.com \
    --cc=zhenzhong.duan@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).