Re: [PATCH 2/5] iommu/of: Use device_iommu_mapped()

Robin Murphy
2018-12-05T17:17:58Z

On 04/12/2018 17:25, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@suse.de>
>
> Use Use device_iommu_mapped() to check if the device is
> already mapped by an IOMMU.

FWIW, this check (and its ACPI equivalent in patch #3) is specifically
asking "has .add_device() already been called?", rather than the more
general "is this device managed by an IOMMU?" (to which the exact answer
at this point is "yes, provided we return successfully from here").

I have no objection to the change as-is - especially if that usage is
within the intended scope of this API - I just wanted to call it out in
case you're also planning to introduce something else which would be
even more appropriate for that.

Robin.

> Signed-off-by: Joerg Roedel <jroedel@suse.de>
> ---
> drivers/iommu/of_iommu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/of_iommu.c b/drivers/iommu/of_iommu.c
> index c5dd63072529..bfcf139503f0 100644
> --- a/drivers/iommu/of_iommu.c
> +++ b/drivers/iommu/of_iommu.c
> @@ -220,7 +220,7 @@ const struct iommu_ops *of_iommu_configure(struct device *dev,
> * If we have reason to believe the IOMMU driver missed the initial
> * add_device callback for dev, replay it to get things in order.
> */
> - if (ops && ops->add_device && dev->bus && !dev->iommu_group)
> + if (ops && ops->add_device && dev->bus && !device_iommu_mapped(dev))
> err = ops->add_device(dev);
>
> /* Ignore all other errors apart from EPROBE_DEFER */
>