From: Auger Eric <eric.auger@redhat.com>
To: Jacob Pan <jacob.jun.pan@linux.intel.com>,
iommu@lists.linux-foundation.org,
LKML <linux-kernel@vger.kernel.org>,
Joerg Roedel <joro@8bytes.org>,
Alex Williamson <alex.williamson@redhat.com>
Cc: Lu Baolu <baolu.lu@linux.intel.com>,
David Woodhouse <dwmw2@infradead.org>,
Yi Liu <yi.l.liu@intel.com>, "Tian, Kevin" <kevin.tian@intel.com>,
Raj Ashok <ashok.raj@intel.com>,
Christoph Hellwig <hch@infradead.org>,
Jean-Philippe Brucker <jean-philippe@linaro.com>,
Jonathan Corbet <corbet@lwn.net>
Subject: Re: [PATCH v7 2/7] iommu/uapi: Add argsz for user filled data
Date: Wed, 12 Aug 2020 18:59:14 +0200 [thread overview]
Message-ID: <1ac39547-143b-2a2e-e142-92be023ef8d7@redhat.com> (raw)
In-Reply-To: <1596068467-49322-3-git-send-email-jacob.jun.pan@linux.intel.com>
Hi,
On 7/30/20 2:21 AM, Jacob Pan wrote:
> As IOMMU UAPI gets extended, user data size may increase. To support
> backward compatibiliy, this patch introduces a size field to each UAPI
s/compatibiliy/compatibility
> data structures. It is *always* the responsibility for the user to fill in
> the correct size. Padding fields are adjusted to ensure 8 byte alignment.
>
> Specific scenarios for user data handling are documented in:
> Documentation/userspace-api/iommu.rst
you may mention the struct version does not need to be incremented as no
IOCTL uses the structs yet.
>
> Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
> Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
> ---
> include/uapi/linux/iommu.h | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/include/uapi/linux/iommu.h b/include/uapi/linux/iommu.h
> index e907b7091a46..d5e9014f690e 100644
> --- a/include/uapi/linux/iommu.h
> +++ b/include/uapi/linux/iommu.h
> @@ -135,6 +135,7 @@ enum iommu_page_response_code {
>
> /**
> * struct iommu_page_response - Generic page response information
> + * @argsz: User filled size of this data
> * @version: API version of this structure
> * @flags: encodes whether the corresponding fields are valid
> * (IOMMU_FAULT_PAGE_RESPONSE_* values)
> @@ -143,6 +144,7 @@ enum iommu_page_response_code {
> * @code: response code from &enum iommu_page_response_code
> */
> struct iommu_page_response {
> + __u32 argsz;
> #define IOMMU_PAGE_RESP_VERSION_1 1
> __u32 version;
> #define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
> @@ -218,6 +220,7 @@ struct iommu_inv_pasid_info {
> /**
> * struct iommu_cache_invalidate_info - First level/stage invalidation
> * information
> + * @argsz: User filled size of this data
> * @version: API version of this structure
> * @cache: bitfield that allows to select which caches to invalidate
> * @granularity: defines the lowest granularity used for the invalidation:
> @@ -246,6 +249,7 @@ struct iommu_inv_pasid_info {
> * must support the used granularity.
> */
> struct iommu_cache_invalidate_info {
> + __u32 argsz;
> #define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1
> __u32 version;
> /* IOMMU paging structure cache */
> @@ -255,7 +259,7 @@ struct iommu_cache_invalidate_info {
> #define IOMMU_CACHE_INV_TYPE_NR (3)
> __u8 cache;
> __u8 granularity;
> - __u8 padding[2];
> + __u8 padding[6];
> union {
> struct iommu_inv_pasid_info pasid_info;
> struct iommu_inv_addr_info addr_info;
> @@ -292,6 +296,7 @@ struct iommu_gpasid_bind_data_vtd {
>
> /**
> * struct iommu_gpasid_bind_data - Information about device and guest PASID binding
> + * @argsz: User filled size of this data
> * @version: Version of this data structure
> * @format: PASID table entry format
> * @flags: Additional information on guest bind request
> @@ -309,17 +314,18 @@ struct iommu_gpasid_bind_data_vtd {
> * PASID to host PASID based on this bind data.
> */
> struct iommu_gpasid_bind_data {
> + __u32 argsz;
> #define IOMMU_GPASID_BIND_VERSION_1 1
> __u32 version;
> #define IOMMU_PASID_FORMAT_INTEL_VTD 1
> __u32 format;
> + __u32 addr_width;
> #define IOMMU_SVA_GPASID_VAL (1 << 0) /* guest PASID valid */
> __u64 flags;
> __u64 gpgd;
> __u64 hpasid;
> __u64 gpasid;
> - __u32 addr_width;
> - __u8 padding[12];
> + __u8 padding[8];
> /* Vendor specific data */
> union {
> struct iommu_gpasid_bind_data_vtd vtd;
>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Thanks
Eric
next prev parent reply other threads:[~2020-08-12 16:59 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-30 0:21 [PATCH v7 0/7] IOMMU user API enhancement Jacob Pan
2020-07-30 0:21 ` [PATCH v7 1/7] docs: IOMMU user API Jacob Pan
2020-08-12 16:38 ` Auger Eric
2020-08-17 22:07 ` Jacob Pan
2020-07-30 0:21 ` [PATCH v7 2/7] iommu/uapi: Add argsz for user filled data Jacob Pan
2020-08-12 16:59 ` Auger Eric [this message]
2020-08-17 22:48 ` Jacob Pan
2020-07-30 0:21 ` [PATCH v7 3/7] iommu/uapi: Introduce enum type for PASID data format Jacob Pan
2020-08-13 9:29 ` Auger Eric
2020-07-30 0:21 ` [PATCH v7 4/7] iommu/uapi: Use named union for user data Jacob Pan
2020-07-30 0:21 ` [PATCH v7 5/7] iommu/uapi: Rename uapi functions Jacob Pan
2020-08-13 8:58 ` Auger Eric
2020-08-17 23:16 ` Jacob Pan
2020-07-30 0:21 ` [PATCH v7 6/7] iommu/uapi: Handle data and argsz filled by users Jacob Pan
2020-08-13 9:11 ` Auger Eric
2020-08-13 9:25 ` Liu, Yi L
2020-08-13 9:30 ` Auger Eric
2020-08-13 9:38 ` Liu, Yi L
2020-08-13 10:03 ` Auger Eric
2020-07-30 0:21 ` [PATCH v7 7/7] iommu/vt-d: Check UAPI data processed by IOMMU core Jacob Pan
2020-08-13 9:19 ` Auger Eric
2020-08-31 17:52 ` Jacob Pan
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=1ac39547-143b-2a2e-e142-92be023ef8d7@redhat.com \
--to=eric.auger@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=ashok.raj@intel.com \
--cc=baolu.lu@linux.intel.com \
--cc=corbet@lwn.net \
--cc=dwmw2@infradead.org \
--cc=hch@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jacob.jun.pan@linux.intel.com \
--cc=jean-philippe@linaro.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox