Re: [PATCH v4 2/4] iommu: Add new iommu op to get iommu hardware information

From: Jason Gunthorpe
Date: Thu Jul 27 2023 - 10:43:11 EST


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).
>
> 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?

Jason