Re: [PATCH v4 02/16] ACPI/IORT: Remove direct access of dev->iommu_fwspec

From: Hanjun Guo
Date: Thu Mar 26 2020 - 23:47:04 EST


On 2020/3/26 23:08, Joerg Roedel wrote:
> From: Joerg Roedel <jroedel@xxxxxxx>
>
> Use the accessor functions instead of directly dereferencing
> dev->iommu_fwspec.
>
> Tested-by: Hanjun Guo <guohanjun@xxxxxxxxxx>
> Reviewed-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx>
> Signed-off-by: Joerg Roedel <jroedel@xxxxxxx>
> ---
> drivers/acpi/arm64/iort.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index ed3d2d1a7ae9..7d04424189df 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1015,6 +1015,7 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
> return ops;
>
> if (dev_is_pci(dev)) {
> + struct iommu_fwspec *fwspec;
> struct pci_bus *bus = to_pci_dev(dev)->bus;
> struct iort_pci_alias_info info = { .dev = dev };
>
> @@ -1027,8 +1028,9 @@ const struct iommu_ops *iort_iommu_configure(struct device *dev)
> err = pci_for_each_dma_alias(to_pci_dev(dev),
> iort_pci_iommu_init, &info);

...

>
> - if (!err && iort_pci_rc_supports_ats(node))
> - dev->iommu_fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS;
> + fwspec = dev_iommu_fwspec_get(dev);
> + if (fwspec && iort_pci_rc_supports_ats(node))

Should we check !err as well?

Thanks
Hanjun

> + fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS;
> } else {
> int i = 0;
>
>