Re: [PATCH] iommu/vt-d: Remove an unnecessary call set_dma_ops()

From: Robin Murphy
Date: Thu Apr 10 2025 - 07:35:54 EST


On 10/04/2025 3:59 am, Baolu Lu wrote:
On 4/9/25 23:44, Petr Tesařík wrote:
On Thu,  3 Apr 2025 18:56:05 +0200
Petr Tesarik<ptesarik@xxxxxxxx> wrote:

Do not touch per-device DMA ops when the driver has been converted to use
the dma-iommu API.

Fixes: c588072bba6b ("iommu/vt-d: Convert intel iommu driver to the iommu ops")
Signed-off-by: Petr Tesarik<ptesarik@xxxxxxxx>
Does anyone agree? Or see any issues?

At least it definitely serves no purpose since b5c58b2fdc42 ("dma-mapping: direct calls for dma-iommu"). FWIW,

Reviewed-by: Robin Murphy <robin.murphy@xxxxxxx>

This change looks good to me. The iommu driver should not call
set_dma_ops() anyway. I will queue this for v6.15-rc.

I ever wondered whether we could clean up dev->dma_iommu when the device
is released by the iommu core. But, iommu_release_device() is only
called in the device removal path, so keeping dev->dma_iommu set doesn't
impose any functional impact AFAICS.

Funnily enough I've just been looking at that - I'd long held the same assumption, but I'd been forgetting the edge case that's always been there if bus_set_iommu(), and now iommu_device_register(), failed and groups and default domains were torn down for existing devices. So in fact it seems Intel was one of the few drivers/architectures managing to do the right thing before :)

Cheers,
Robin.