From: Jason Gunthorpe jgg@nvidia.com Sent: Thursday, July 27, 2023 10:43 PM
On Thu, Jul 27, 2023 at 07:57:57AM +0000, Tian, Kevin wrote:
From: Liu, Yi L yi.l.liu@intel.com Sent: Monday, July 24, 2023 7:00 PM
@@ -252,11 +258,20 @@ struct iommu_iotlb_gather {
- @remove_dev_pasid: Remove any translation configurations of a specific
pasid, so that any DMA transactions with this pasid
will be blocked by the hardware.
- @hw_info_type: One of enum iommu_hw_info_type defined in
include/uapi/linux/iommufd.h. It is used to tag the type
of data returned by .hw_info callback. The drivers that
support .hw_info callback should define a unique type
in include/uapi/linux/iommufd.h. For the drivers that do
not implement .hw_info callback, this field is
IOMMU_HW_INFO_TYPE_NONE which is 0. Hence, such drivers
do not need to care this field.
every time looking at this field the same question came out why it is required (and looks I forgot your previous response).
The major reason is that not every driver implements the hw_info callback.
e.g. why cannot the type be returned in @hw_info():
void *(*hw_info)(struct device *dev, u32 *length, int *type);
u32 *type
NULL callback implies IOMMU_HW_INFO_TYPE_NONE.
If every one of these queries has its own type it makes sense
Though, is it not possible that we can have a type for the entire driver?
Not quite sure if I got your point. Is it acceptable to define the callabck in the current version? or Kevin's suggestion makes more sense?
Regards, Yi Liu