[PATCH v2 1/6] iommu: Generic support for RMRs during device release
Baolu Lu
baolu.lu at linux.intel.com
Wed Oct 22 21:43:02 PDT 2025
On 10/23/25 10:21, Nicolin Chen wrote:
> From: Jason Gunthorpe<jgg at nvidia.com>
>
> Generally an IOMMU driver should leave the translation as BLOCKED until the
> translation entry is probed onto a struct device. When the struct device is
> removed, the translation should be put back to BLOCKED.
>
> Drivers that are able to work like this can set their release_domain to the
> blocking domain, and the core code handles this work.
>
> The exception is when the device has an IOMMU_RESV_DIRECT region, in which
> case the OS should continuously allow translations for the given range. And
> the core code generally prevents using a BLOCKED domain with this device.
>
> Continue this logic for the device release and hoist some open coding from
> drivers. If the device has dev->iommu->require_direct and the driver uses a
> BLOCKED release_domain, override it to IDENTITY to preserve the semantics.
>
> The only remaining required driver code for IOMMU_RESV_DIRECT should preset
> an IDENTITY translation during early IOMMU startup for those devices.
>
> Signed-off-by: Jason Gunthorpe<jgg at nvidia.com>
> Signed-off-by: Nicolin Chen<nicolinc at nvidia.com>
> ---
> drivers/iommu/iommu.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
Reviewed-by: Lu Baolu <baolu.lu at linux.intel.com>
More information about the Linux-rockchip
mailing list