Re: [PATCH v3 02/20] iommu/apple-dart: Remove detach_dev callback

From: Baolu Lu
Date: Wed Nov 30 2022 - 23:51:11 EST


On 2022/12/1 1:00, Sven Peter wrote:
On Mon, Nov 28, 2022, at 07:46, Lu Baolu wrote:
The IOMMU driver supports default domain, so the detach_dev op will never
be called. Remove it to avoid dead code.

Signed-off-by: Lu Baolu<baolu.lu@xxxxxxxxxxxxxxx>
---
Reviewed-by: Sven Peter<sven@xxxxxxxxxxxxx>

drivers/iommu/apple-dart.c | 17 -----------------
1 file changed, 17 deletions(-)

diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c
index 4f4a323be0d0..6fbe6b275c79 100644
--- a/drivers/iommu/apple-dart.c
+++ b/drivers/iommu/apple-dart.c
@@ -535,22 +535,6 @@ static int apple_dart_attach_dev(struct
iommu_domain *domain,
return ret;
}

-static void apple_dart_detach_dev(struct iommu_domain *domain,
- struct device *dev)
-{
Thanks for cleaning this entire API up!

It actually turns out that this is slightly broken because I assumed that
detach_dev would always be called for any attach_dev. I think the only
consequence for a device that used to be assigned to domain A and is now moved to
domain B is that any TLB flushes required for A will still flush the TLB for that
device.

That's not a big deal but I'll eventually send a fix.

- int i;
- struct apple_dart_stream_map *stream_map;
- struct apple_dart_master_cfg *cfg = dev_iommu_priv_get(dev);
- struct apple_dart_domain *dart_domain = to_dart_domain(domain);
-
- for_each_stream_map(i, cfg, stream_map)
- apple_dart_hw_disable_dma(stream_map);
-
- if (domain->type == IOMMU_DOMAIN_DMA ||
- domain->type == IOMMU_DOMAIN_UNMANAGED)
- apple_dart_domain_remove_streams(dart_domain, cfg);
Something might complain about unused apple_dart_domain_remove_streams now.
Might make sense to drop that for now as well.

Done. Thanks!

Best regards,
baolu