Add intel_iommu_hw_info() to report cap_reg and ecap_reg information.
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Yi Liu <yi.l.liu@intel.com>
---
drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++
include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++
2 files changed, 42 insertions(+)
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 6977d320c440..ba34827045e6 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -4748,8 +4748,26 @@ static void intel_iommu_remove_dev_pasid(struct device *dev, ioasid_t pasid)
intel_pasid_tear_down_entry(iommu, dev, pasid, false);
}
+static void *intel_iommu_hw_info(struct device *dev, u32 *length)
+{
+ struct device_domain_info *info = dev_iommu_priv_get(dev);
+ struct intel_iommu *iommu = info->iommu;
+ struct iommu_hw_info_vtd *vtd;
+
+ vtd = kzalloc(sizeof(*vtd), GFP_KERNEL);
+ if (!vtd)
+ return ERR_PTR(-ENOMEM);
+
+ vtd->cap_reg = iommu->cap;
+ vtd->ecap_reg = iommu->ecap;
+ *length = sizeof(*vtd);
+
+ return vtd;
+}
+
const struct iommu_ops intel_iommu_ops = {
.capable = intel_iommu_capable,
+ .hw_info = intel_iommu_hw_info,
.domain_alloc = intel_iommu_domain_alloc,
.domain_alloc_user = intel_iommu_domain_alloc_user,
.probe_device = intel_iommu_probe_device,
@@ -4763,6 +4781,7 @@ const struct iommu_ops intel_iommu_ops = {
.def_domain_type = device_def_domain_type,
.remove_dev_pasid = intel_iommu_remove_dev_pasid,
.pgsize_bitmap = SZ_4K,
+ .hw_info_type = IOMMU_HW_INFO_TYPE_INTEL_VTD,
#ifdef CONFIG_INTEL_IOMMU_SVM
.page_response = intel_svm_page_response,
#endif
diff --git a/include/uapi/linux/iommufd.h b/include/uapi/linux/iommufd.h
index 2c1241448c87..0dfb6f3d8dda 100644
--- a/include/uapi/linux/iommufd.h
+++ b/include/uapi/linux/iommufd.h
@@ -435,12 +435,35 @@ struct iommu_hwpt_alloc {
};
#define IOMMU_HWPT_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_ALLOC)
+/**
+ * struct iommu_hw_info_vtd - Intel VT-d hardware information
+ *
+ * @flags: Must be 0
+ * @__reserved: Must be 0
+ *
+ * @cap_reg: Value of Intel VT-d capability register defined in VT-d spec
+ * section 11.4.2 Capability Register.
+ * @ecap_reg: Value of Intel VT-d capability register defined in VT-d spec
+ * section 11.4.3 Extended Capability Register.
+ *
+ * User needs to understand the Intel VT-d specification to decode the
+ * register value.
+ */
+struct iommu_hw_info_vtd {
+ __u32 flags;
+ __u32 __reserved;
+ __aligned_u64 cap_reg;
+ __aligned_u64 ecap_reg;
+};
+
/**
* enum iommu_hw_info_type - IOMMU Hardware Info Types
* @IOMMU_HW_INFO_TYPE_NONE: Used by the drivers that does not report hardware info
+ * @IOMMU_HW_INFO_TYPE_INTEL_VTD: Intel VT-d iommu info type
*/
enum iommu_hw_info_type {
IOMMU_HW_INFO_TYPE_NONE,
+ IOMMU_HW_INFO_TYPE_INTEL_VTD,
};
/**
--
2.34.1
On Mon, Jul 24, 2023 at 04:13:33AM -0700, Yi Liu wrote: > Add intel_iommu_hw_info() to report cap_reg and ecap_reg information. > > Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> > Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> > Signed-off-by: Yi Liu <yi.l.liu@intel.com> > --- > drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++ > include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++ > 2 files changed, 42 insertions(+) I would like to pick this patch out of this series to go with the main get_info stuff so that we have drivers implementing what is merged. I made the trivial fixup. Lu are you OK? Thanks, Jason
On 2023/8/16 0:31, Jason Gunthorpe wrote: > On Mon, Jul 24, 2023 at 04:13:33AM -0700, Yi Liu wrote: >> Add intel_iommu_hw_info() to report cap_reg and ecap_reg information. >> >> Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> >> Signed-off-by: Nicolin Chen<nicolinc@nvidia.com> >> Signed-off-by: Yi Liu<yi.l.liu@intel.com> >> --- >> drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++ >> include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++ >> 2 files changed, 42 insertions(+) > I would like to pick this patch out of this series to go with the main > get_info stuff so that we have drivers implementing what is merged. I > made the trivial fixup. > > Lu are you OK? Yes. Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> Best regards, baolu
On Wed, Aug 16, 2023 at 08:35:00AM +0800, Baolu Lu wrote: > On 2023/8/16 0:31, Jason Gunthorpe wrote: > > On Mon, Jul 24, 2023 at 04:13:33AM -0700, Yi Liu wrote: > > > Add intel_iommu_hw_info() to report cap_reg and ecap_reg information. > > > > > > Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> > > > Signed-off-by: Nicolin Chen<nicolinc@nvidia.com> > > > Signed-off-by: Yi Liu<yi.l.liu@intel.com> > > > --- > > > drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++ > > > include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++ > > > 2 files changed, 42 insertions(+) > > I would like to pick this patch out of this series to go with the main > > get_info stuff so that we have drivers implementing what is merged. I > > made the trivial fixup. > > > > Lu are you OK? > > Yes. > > Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> I changed this to an acked-by since you helpd write the patch :) Jason
On 2023/8/16 19:46, Jason Gunthorpe wrote: > On Wed, Aug 16, 2023 at 08:35:00AM +0800, Baolu Lu wrote: >> On 2023/8/16 0:31, Jason Gunthorpe wrote: >>> On Mon, Jul 24, 2023 at 04:13:33AM -0700, Yi Liu wrote: >>>> Add intel_iommu_hw_info() to report cap_reg and ecap_reg information. >>>> >>>> Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> >>>> Signed-off-by: Nicolin Chen<nicolinc@nvidia.com> >>>> Signed-off-by: Yi Liu<yi.l.liu@intel.com> >>>> --- >>>> drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++ >>>> include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++ >>>> 2 files changed, 42 insertions(+) >>> I would like to pick this patch out of this series to go with the main >>> get_info stuff so that we have drivers implementing what is merged. I >>> made the trivial fixup. >>> >>> Lu are you OK? >> Yes. >> >> Reviewed-by: Lu Baolu<baolu.lu@linux.intel.com> > I changed this to an acked-by since you helpd write the patch 😄 Okay, fine to me. Best regards, baolu
> From: Baolu Lu <baolu.lu@linux.intel.com> > Sent: Wednesday, August 16, 2023 7:49 PM > > On 2023/8/16 19:46, Jason Gunthorpe wrote: > > On Wed, Aug 16, 2023 at 08:35:00AM +0800, Baolu Lu wrote: > >> On 2023/8/16 0:31, Jason Gunthorpe wrote: > >>> On Mon, Jul 24, 2023 at 04:13:33AM -0700, Yi Liu wrote: > >>>> Add intel_iommu_hw_info() to report cap_reg and ecap_reg information. > >>>> > >>>> Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> > >>>> Signed-off-by: Nicolin Chen<nicolinc@nvidia.com> > >>>> Signed-off-by: Yi Liu<yi.l.liu@intel.com> > >>>> --- > >>>> drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++ > >>>> include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++ > >>>> 2 files changed, 42 insertions(+) > >>> I would like to pick this patch out of this series to go with the main > >>> get_info stuff so that we have drivers implementing what is merged. I > >>> made the trivial fixup. > >>> > >>> Lu are you OK? > >> Yes. > >> > >> Reviewed-by: Lu Baolu<baolu.lu@linux.intel.com> > > I changed this to an acked-by since you helpd write the patch 😄 > > Okay, fine to me. I'm going to send hw_info v8 which includes this patch, so will add below tag, thanks. Acked-by: Lu Baolu <baolu.lu@linux.intel.com> Regards, Yi Liu
On Wed, Aug 16, 2023 at 08:35:00AM +0800, Baolu Lu wrote: > On 2023/8/16 0:31, Jason Gunthorpe wrote: > > On Mon, Jul 24, 2023 at 04:13:33AM -0700, Yi Liu wrote: > > > Add intel_iommu_hw_info() to report cap_reg and ecap_reg information. > > > > > > Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> > > > Signed-off-by: Nicolin Chen<nicolinc@nvidia.com> > > > Signed-off-by: Yi Liu<yi.l.liu@intel.com> > > > --- > > > drivers/iommu/intel/iommu.c | 19 +++++++++++++++++++ > > > include/uapi/linux/iommufd.h | 23 +++++++++++++++++++++++ > > > 2 files changed, 42 insertions(+) > > I would like to pick this patch out of this series to go with the main > > get_info stuff so that we have drivers implementing what is merged. I > > made the trivial fixup. > > > > Lu are you OK? > > Yes. > > Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> Hmm... We have Yi in the author line and Baolu in the first signed-off line, and now Baolu with "Reviewed-by" again... I guess we might need a bit of fix or re-arrange? :) Thanks Nic
© 2016 - 2026 Red Hat, Inc.