iommu/vt-d: Add helper to setup pasid nested translation
authorLu Baolu <baolu.lu@linux.intel.com>
Thu, 26 Oct 2023 04:42:12 +0000 (21:42 -0700)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 26 Oct 2023 14:16:33 +0000 (11:16 -0300)
commit111bf85c68f6edb2d06c6705faab9d1649348bdb
treebc3ef1a6e4ca60f73371d56aeabde68a88ff2d42
parent79ae1eccd3f7fb010064c0f6242da8f8944c21fd
iommu/vt-d: Add helper to setup pasid nested translation

The configurations are passed in from the user when the user domain is
allocated. This helper interprets these configurations according to the
data structure defined in uapi/linux/iommufd.h. The EINVAL error will be
returned if any of configurations are not compatible with the hardware
capabilities. The caller can retry with another compatible user domain.
The encoding of fields of each pasid entry is defined in section 9.6 of
the VT-d spec.

Link: https://lore.kernel.org/r/20231026044216.64964-5-yi.l.liu@intel.com
Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Yi Liu <yi.l.liu@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/iommu/intel/pasid.c
drivers/iommu/intel/pasid.h