Subject: Re: [PATCH v2 05/25] iommu/tegra-gart: Remove tegra-gart

From: Thierry Reding <[email-masked]>
Date: Thu, 1 Jun 2023 18:51:11 +0200

On Mon, May 15, 2023 at 09:00:38PM -0300, Jason Gunthorpe wrote:
> Thierry says this is not used anymore, and doesn't think it ever will
> be. The HW it supports is about 10 years old now and newer HW uses
> different IOMMU drivers.
> 
> As this is the only driver with a GART approach, and it doesn't really
> meet the driver expectations from the IOMMU core, let's just remove it
> so we don't have to think about how to make it fit in.
> 
> It has a number of identified problems:
>  - The assignment of iommu_groups doesn't match the HW behavior
> 
>  - It claims to have an UNMANAGED domain but it is really an IDENTITY
>    domain with a translation aperture. This is inconsistent with the core
>    expectation for security sensitive operations
> 
>  - It doesn't implement a SW page table under struct iommu_domain so
>    * It can't accept a map until the domain is attached
>    * It forgets about all maps after the domain is detached
>    * It doesn't clear the HW of maps once the domain is detached
>      (made worse by having the wrong groups)
> 
> Cc: Thierry Reding <[email-masked]>
> Cc: Dmitry Osipenko <[email-masked]>
> Signed-off-by: Jason Gunthorpe <[email-masked]>
> ---
>  arch/arm/configs/multi_v7_defconfig |   1 -
>  arch/arm/configs/tegra_defconfig    |   1 -
>  drivers/iommu/Kconfig               |  11 -
>  drivers/iommu/Makefile              |   1 -
>  drivers/iommu/tegra-gart.c          | 371 ----------------------------
>  drivers/memory/tegra/mc.c           |  34 ---
>  drivers/memory/tegra/tegra20.c      |  28 ---
>  include/soc/tegra/mc.h              |  26 --
>  8 files changed, 473 deletions(-)
>  delete mode 100644 drivers/iommu/tegra-gart.c

To clarify, I think this hardware could very well be used again, but I
don't think it makes sense to use it in the context of the IOMMU
subsystem. If anybody wants to make use of this on Tegra20, it probably
makes more sense to move the GART programming into whatever driver ends
up using it instead of jumping through all these hoops just to make it
work like something it isn't.

Acked-by: Thierry Reding <[email-masked]>