> From: Liu, Yi L <yi.l.liu@xxxxxxxxx> > Sent: Thursday, December 21, 2023 11:40 PM > > From: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > > The updates of the PTEs in the nested page table will be propagated to the > hardware caches on both IOMMU (IOTLB) and devices (DevTLB/ATC). this is incorrect. the scope of this cmd is driver specific. > > Add a new domain op cache_invalidate_user for the userspace to flush the > hardware caches for a nested domain through iommufd. No wrapper for it, > as it's only supposed to be used by iommufd. Then, pass in invalidation > requests in form of a user data array conatining a number of invalidation > data entries. > > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > Signed-off-by: Yi Liu <yi.l.liu@xxxxxxxxx> > --- > include/linux/iommu.h | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 6291aa7b079b..5c4a17f13761 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -284,6 +284,24 @@ struct iommu_user_data { > size_t len; > }; > > +/** > + * struct iommu_user_data_array - iommu driver specific user space data > array > + * @type: The data type of all the entries in the user buffer array > + * @uptr: Pointer to the user buffer array for copy_from_user() remove 'for copy_from_user(); > + * @entry_len: The fixed-width length of a entry in the array, in bytes s/a/an/ > + * @entry_num: The number of total entries in the array > + * > + * A array having a @entry_num number of @entry_len sized entries, each the first sentence is redundant. > entry is > + * user space data, an uAPI defined in include/uapi/linux/iommufd.h where > @type > + * is also defined as enum iommu_xyz_data_type. I'd just say: "The user buffer includes an array of requests with format defined in include/uapi/linux/iommufd.h"