On Fri, Mar 27, 2020 at 11:30:53AM +0800, Hanjun Guo wrote: > 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? No need, the check should have been on fwspec from the beginning. Checking err was just a lazy shortcut on my part, as we're really just making sure that we can dereference fwspec->flags here. Thanks, Jean > > Thanks > Hanjun > > > + fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS; > > } else { > > int i = 0; > > > > >