Messages in this thread |  | | Date | Tue, 11 Feb 2025 20:37:08 +0000 | | Subject | Re: [PATCH 3/5] iommu/dart: Set DMA domain for locked DARTs | | From | Robin Murphy <> |
| |
On 2025-02-11 6:40 pm, Alyssa Rosenzweig wrote: > Hi Robin, > >>> This is required. >> >> Now that we can, I'd really rather do this properly and not offer an >> identity domain in the first place when it's not available. > > I'm reading through iommu.c but I don't see a way to avoid offering an > identity domain without the DMA override here, just reading through the > logic of iommu_get_default_domain_type. Could you point me to what you > have in mind?
Since we finished cleaning up the domain allocation paths, it's finally safe to have per-instance ops, so you can mix and match some with an identity domain and some without, as s390 will be doing[1].
Cheers, Robin.
[1] https://lore.kernel.org/linux-iommu/20250207205335.473946-5-mjrosato@linux.ibm.com/
> Thanks, > Alyssa > >>> --- a/drivers/iommu/apple-dart.c >>> +++ b/drivers/iommu/apple-dart.c >>> @@ -941,6 +941,8 @@ static int apple_dart_def_domain_type(struct device *dev) >>> return IOMMU_DOMAIN_IDENTITY; >>> if (!cfg->stream_maps[0].dart->supports_bypass) >>> return IOMMU_DOMAIN_DMA; >>> + if (cfg->stream_maps[0].dart->locked) >>> + return IOMMU_DOMAIN_DMA; >>> return 0; >>> } >>> >>
|  |