Re: [PATCH v4 02/17] iommu: Add nested domain support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 21, 2023 at 12:51:23AM -0700, Yi Liu wrote:
> From: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>
> 
> Introduce a new domain type for a user I/O page table, which is nested on
> top of another user space address represented by a UNMANAGED
> domain. The

Lets start using the world PAGING whenever you want to type
UNMANAGED. I'm trying to get rid of UNMANAGED.

> @@ -241,6 +245,21 @@ struct iommu_user_data {
>  	size_t len;
>  };
>  
> +/**
> + * struct iommu_user_data_array - iommu driver specific user space data array
> + * @uptr: Pointer to the user buffer array for copy_from_user()
> + * @entry_len: The fixed-width length of a entry in the array, in bytes
> + * @entry_num: The number of total entries in the array
> + *
> + * A array having a @entry_num number of @entry_len sized entries, each entry is
> + * user space data, i.e. an uAPI that is defined in include/uapi/linux/iommufd.h
> + */
> +struct iommu_user_data_array {
> +	void __user *uptr;
> +	size_t entry_len;
> +	int entry_num;
> +};

Ditto about iommu-driver.h for most of this stuff

> +
>  /**
>   * 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
> @@ -263,6 +282,34 @@ static inline int iommu_copy_user_data(void *dst_data,
>  				     src_data->uptr, src_data->len);
>  }
>  
> +/**
> + * iommu_copy_user_data_from_array - Copy iommu driver specific user space data
> + *                                   from an iommu_user_data_array input
> + * @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_array for user space data array
> + * @index: Index to offset the location in the array to copy user data from
> + * @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_from_array(void *dst_data,
> +				const struct iommu_user_data_array *src_array,
> +				int index, size_t data_len, size_t min_len)

Index should be 'unsigned int'

Jason



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux