On Thu, Jun 03, 2021 at 04:06:18AM +0800, kernel test robot wrote: > >> drivers/acpi/scan.c:1540:26: error: no member named 'ops' in 'struct iommu_fwspec' > return fwspec ? fwspec->ops : NULL; > ~~~~~~ ^ > >> drivers/acpi/scan.c:1564:9: error: implicit declaration of function 'iommu_probe_device' [-Werror,-Wimplicit-function-declaration] > err = iommu_probe_device(dev); > ^ These are only defined when CONFIG_IOMMU_API is set. IORT uses them inside an #ifdef, I can do the same. Maybe moving these two functions to a new drivers/acpi/iommu.c would be nicer, though. Thanks, Jean > 2 errors generated. > > > vim +1540 drivers/acpi/scan.c > > 1535 > 1536 static inline const struct iommu_ops *acpi_iommu_fwspec_ops(struct device *dev) > 1537 { > 1538 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); > 1539 > > 1540 return fwspec ? fwspec->ops : NULL; > 1541 } > 1542 > 1543 static const struct iommu_ops *acpi_iommu_configure_id(struct device *dev, > 1544 const u32 *id_in) > 1545 { > 1546 int err; > 1547 const struct iommu_ops *ops; > 1548 > 1549 /* > 1550 * If we already translated the fwspec there is nothing left to do, > 1551 * return the iommu_ops. > 1552 */ > 1553 ops = acpi_iommu_fwspec_ops(dev); > 1554 if (ops) > 1555 return ops; > 1556 > 1557 err = iort_iommu_configure_id(dev, id_in); > 1558 > 1559 /* > 1560 * If we have reason to believe the IOMMU driver missed the initial > 1561 * add_device callback for dev, replay it to get things in order. > 1562 */ > 1563 if (!err && dev->bus && !device_iommu_mapped(dev)) > > 1564 err = iommu_probe_device(dev); > 1565 > 1566 /* Ignore all other errors apart from EPROBE_DEFER */ > 1567 if (err == -EPROBE_DEFER) { > 1568 return ERR_PTR(err); > 1569 } else if (err) { > 1570 dev_dbg(dev, "Adding to IOMMU failed: %d\n", err); > 1571 return NULL; > 1572 } > 1573 return acpi_iommu_fwspec_ops(dev); > 1574 } > 1575 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx