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

Robin Murphy
2018-12-06T17:42:22Z

On 06/12/2018 15:35, Joerg Roedel wrote:
> Hi Robin,
>
> On Wed, Dec 05, 2018 at 05:17:54PM +0000, Robin Murphy wrote:
>> 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.
>
> Yes, the purpose of the device_iommu_mapped() functions is to check
> whether the device has been initialized by the IOMMU driver that handles
> it, if any.
>
> So it answers the question: Can I use the device in an IOMMU-API call?

OK, another way to consider the usage here would be "is the device ready
to use in IOMMU API calls (or do I need to call add_device to finish
setting it up)?", so it does in fact seem like a perfect fit, great!

> And it is more readable than the dev->iommu_group checks everywhere :)

For sure - although I am now wondering whether "mapped" is perhaps a
little ambiguous in the naming, since the answer to "can I use the API"
is yes even when the device may currently be attached to an
identity/passthrough domain or blocked completely, neither of which
involve any "mapping". Maybe simply "device_has_iommu()" would convey
the intent better?

Robin.