On Mon, Jul 31, 2023 at 08:33:55AM +0000, Liu, Yi L wrote: > > From: Jason Gunthorpe <jgg@xxxxxxxxxx> > > 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@xxxxxxxxx> > > > > 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? I'm trying to remember if there is a reason we need unique types for the domain and the invalidation or if we can get bye with a single type just for the whole iommu driver. I suppose if we ever want to to "virtio-iommu invalidation" we'd want to use a new type for it? Jason