On Fri, Apr 19, 2024 at 6:56 PM Robin Murphy <robin.murphy@xxxxxxx> wrote: > > Now that iommu_fwspec_init() can signal for probe deferral directly, > acpi_iommu_fwspec_ops() is unneeded and can be cleaned up. > > Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > drivers/acpi/scan.c | 30 ++++++------------------------ > 1 file changed, 6 insertions(+), 24 deletions(-) > > diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c > index 9d36fc3dc5ac..d6b64dcbf9a6 100644 > --- a/drivers/acpi/scan.c > +++ b/drivers/acpi/scan.c > @@ -1588,26 +1588,14 @@ int acpi_iommu_fwspec_init(struct device *dev, u32 id, > return ret; > } > > -static inline const struct iommu_ops *acpi_iommu_fwspec_ops(struct device *dev) > -{ > - struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); > - > - return fwspec ? fwspec->ops : NULL; > -} > - > static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > { > int err; > - const struct iommu_ops *ops; > > /* Serialise to make dev->iommu stable under our potential fwspec */ > mutex_lock(&iommu_probe_device_lock); > - /* > - * If we already translated the fwspec there is nothing left to do, > - * return the iommu_ops. > - */ > - ops = acpi_iommu_fwspec_ops(dev); > - if (ops) { > + /* If we already translated the fwspec there is nothing left to do */ > + if (dev_iommu_fwspec_get(dev)) { > mutex_unlock(&iommu_probe_device_lock); > return 0; > } > @@ -1624,16 +1612,7 @@ static int acpi_iommu_configure_id(struct device *dev, const u32 *id_in) > if (!err && dev->bus) > err = iommu_probe_device(dev); > > - /* Ignore all other errors apart from EPROBE_DEFER */ > - if (err == -EPROBE_DEFER) { > - return err; > - } else if (err) { > - dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > - return -ENODEV; > - } > - if (!acpi_iommu_fwspec_ops(dev)) > - return -ENODEV; > - return 0; > + return err; > } > > #else /* !CONFIG_IOMMU_API */ > @@ -1672,6 +1651,9 @@ int acpi_dma_configure_id(struct device *dev, enum dev_dma_attr attr, > ret = acpi_iommu_configure_id(dev, input_id); > if (ret == -EPROBE_DEFER) > return -EPROBE_DEFER; > + /* Ignore all other errors apart from EPROBE_DEFER */ > + if (ret) > + dev_dbg(dev, "Adding to IOMMU failed: %d\n", ret); > > arch_setup_dma_ops(dev, attr == DEV_DMA_COHERENT); > > -- > 2.39.2.101.g768bb238c484.dirty >