[PATCH v3 15/15] iommu: Clean up bus_set_iommu()
Robin Murphy
robin.murphy at arm.com
Thu Jul 7 07:58:38 PDT 2022
On 2022-07-07 13:54, Matthew Rosato wrote:
> On 7/7/22 8:49 AM, Matthew Rosato wrote:
>> On 7/5/22 1:08 PM, Robin Murphy wrote:
>>> Clean up the remaining trivial bus_set_iommu() callsites along
>>> with the implementation. Now drivers only have to know and care
>>> about iommu_device instances, phew!
>>>
>>> Signed-off-by: Robin Murphy <robin.murphy at arm.com>
>>> ---
>>>
>>> v3: Also catch Intel's cheeky open-coded assignment
>>>
>>
>> ...
>>
>>> diff --git a/drivers/iommu/s390-iommu.c b/drivers/iommu/s390-iommu.c
>>> index c898bcbbce11..dd957145fb81 100644
>>> --- a/drivers/iommu/s390-iommu.c
>>> +++ b/drivers/iommu/s390-iommu.c
>>> @@ -385,9 +385,3 @@ static const struct iommu_ops s390_iommu_ops = {
>>> .free = s390_domain_free,
>>> }
>>> };
>>> -
>>> -static int __init s390_iommu_init(void)
>>> -{
>>> - return bus_set_iommu(&pci_bus_type, &s390_iommu_ops);
>>> -}
>>> -subsys_initcall(s390_iommu_init);
>>
>> Previously s390_iommu_ops was only being set for pci_bus_type, but
>> with this series it will now also be set for platform_bus_type.
Ah, indeed I hadn't got as far as fully appreciating that to_zpci_dev()
isn't robust enough on its own. Thanks for the patch, I've pulled it in
and will include it in v4. Do I take it that all else works OK with this
fixed?
Cheers,
Robin.
>>
>> To tolerate that, this series needs a change along the lines of:
>>
>
> ... Sorry, let's try that again without a mangled diff:
>
> From: Matthew Rosato <mjrosato at linux.ibm.com>
> Date: Thu, 7 Jul 2022 08:45:44 -0400
> Subject: [PATCH] iommu/s390: fail probe for non-pci device
>
>
> s390-iommu only supports pci_bus_type today
>
>
> Signed-off-by: Matthew Rosato <mjrosato at linux.ibm.com>
> ---
> drivers/iommu/s390-iommu.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
>
> diff --git a/drivers/iommu/s390-iommu.c b/drivers/iommu/s390-iommu.c
> index dd957145fb81..762f892b4ec3 100644
> --- a/drivers/iommu/s390-iommu.c
> +++ b/drivers/iommu/s390-iommu.c
> @@ -185,7 +185,12 @@ static void s390_iommu_detach_device(struct
> iommu_domain *domain,
>
>
> static struct iommu_device *s390_iommu_probe_device(struct device *dev)
> {
> - struct zpci_dev *zdev = to_zpci_dev(dev);
> + struct zpci_dev *zdev;
> +
> + if (!dev_is_pci(dev))
> + return ERR_PTR(-ENODEV);
> +
> + zdev = to_zpci_dev(dev);
>
>
> return &zdev->iommu_dev;
> }
>
More information about the linux-arm-kernel
mailing list