Re: [PATCH v9 06/11] ACPI/IORT: Add support to retrieve IORT RMR reserved regions

Robin Murphy
2022-04-07T13:53:49Z

On 2022-04-07 14:28, Christoph Hellwig wrote:
>> +static void iort_rmr_desc_check_overlap(struct acpi_iort_rmr_desc *desc, u32 count)
>
> Overly long line.
>
>> void iommu_dma_put_resv_regions(struct device *dev, struct list_head *list)
>> {
>> + if (!is_of_node(dev_iommu_fwspec_get(dev)->iommu_fwnode))
>> + iort_iommu_put_resv_regions(dev, list);
>> +
>> generic_iommu_put_resv_regions(dev, list);
>> }
>
> Why can't this just go into generic_iommu_put_resv_regions? The idea
> that the iommu low-level drivers need to call into dma-iommu which is
> a consumer of the IOMMU API is odd. Especially if that just calls out
> to ACPI code and generic IOMMU code only anyway.

Because assuming ACPI means IORT is not generic. Part of the aim in
adding the union to iommu_resv_region is that stuff like AMD's
unity_map_entry and Intel's dmar_rmrr_unit can be folded into it as
well, and their reserved region handling correspondingly simplified too.

The iommu_dma_{get,put}_resv_region() helpers are kind of intended to be
specific to the fwnode mechanism which deals with IORT and devicetree
(once the reserved region bindings are fully worked out).

Thanks,
Robin.