* [opencloudos:linux-5.4/lts/5.4.119-20.0009.spr 232/2441] drivers/acpi/arm64/iort.c:969:28: error: 'struct device' has no member named 'iommu_fwspec'
@ 2024-09-24 16:18 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-09-24 16:18 UTC (permalink / raw)
To: kaixuxia, frankjpliu, kasong, sagazchen, kernelxing, aurelianliu,
deshengwu, flyingpeng, jason.zeng, wu.zheng, yingbao.jia,
pei.p.jia
Cc: oe-kbuild-all
tree: https://gitee.com/OpenCloudOS/OpenCloudOS-Kernel.git linux-5.4/lts/5.4.119-20.0009.spr
head: 63759dec7a1be60e43e98e4257de936b546e4656
commit: af26f4f021e66233136ec1ec03363a08cbef4da0 [232/2441] iommu: Move iommu_fwspec to struct dev_iommu
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20240925/202409250015.zVmfHZX8-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240925/202409250015.zVmfHZX8-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409250015.zVmfHZX8-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/acpi/arm64/iort.c: In function 'iort_iommu_configure':
>> drivers/acpi/arm64/iort.c:969:28: error: 'struct device' has no member named 'iommu_fwspec'
969 | dev->iommu_fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS;
| ^~
vim +969 drivers/acpi/arm64/iort.c
643b8e4d86f8b1 Lorenzo Pieralisi 2016-11-21 931
8212688600edcb Lorenzo Pieralisi 2019-05-16 932 /**
8212688600edcb Lorenzo Pieralisi 2019-05-16 933 * iort_iommu_configure - Set-up IOMMU configuration for a device.
8212688600edcb Lorenzo Pieralisi 2019-05-16 934 *
8212688600edcb Lorenzo Pieralisi 2019-05-16 935 * @dev: device to configure
8212688600edcb Lorenzo Pieralisi 2019-05-16 936 *
8212688600edcb Lorenzo Pieralisi 2019-05-16 937 * Returns: iommu_ops pointer on configuration success
8212688600edcb Lorenzo Pieralisi 2019-05-16 938 * NULL on configuration failure
8212688600edcb Lorenzo Pieralisi 2019-05-16 939 */
8212688600edcb Lorenzo Pieralisi 2019-05-16 940 const struct iommu_ops *iort_iommu_configure(struct device *dev)
8212688600edcb Lorenzo Pieralisi 2019-05-16 941 {
8212688600edcb Lorenzo Pieralisi 2019-05-16 942 struct acpi_iort_node *node, *parent;
8212688600edcb Lorenzo Pieralisi 2019-05-16 943 const struct iommu_ops *ops;
8212688600edcb Lorenzo Pieralisi 2019-05-16 944 u32 streamid = 0;
8212688600edcb Lorenzo Pieralisi 2019-05-16 945 int err = -ENODEV;
8212688600edcb Lorenzo Pieralisi 2019-05-16 946
8212688600edcb Lorenzo Pieralisi 2019-05-16 947 /*
8212688600edcb Lorenzo Pieralisi 2019-05-16 948 * If we already translated the fwspec there
8212688600edcb Lorenzo Pieralisi 2019-05-16 949 * is nothing left to do, return the iommu_ops.
8212688600edcb Lorenzo Pieralisi 2019-05-16 950 */
8212688600edcb Lorenzo Pieralisi 2019-05-16 951 ops = iort_fwspec_iommu_ops(dev);
8212688600edcb Lorenzo Pieralisi 2019-05-16 952 if (ops)
8212688600edcb Lorenzo Pieralisi 2019-05-16 953 return ops;
8212688600edcb Lorenzo Pieralisi 2019-05-16 954
8212688600edcb Lorenzo Pieralisi 2019-05-16 955 if (dev_is_pci(dev)) {
8212688600edcb Lorenzo Pieralisi 2019-05-16 956 struct pci_bus *bus = to_pci_dev(dev)->bus;
8212688600edcb Lorenzo Pieralisi 2019-05-16 957 struct iort_pci_alias_info info = { .dev = dev };
8212688600edcb Lorenzo Pieralisi 2019-05-16 958
8212688600edcb Lorenzo Pieralisi 2019-05-16 959 node = iort_scan_node(ACPI_IORT_NODE_PCI_ROOT_COMPLEX,
8212688600edcb Lorenzo Pieralisi 2019-05-16 960 iort_match_node_callback, &bus->dev);
8212688600edcb Lorenzo Pieralisi 2019-05-16 961 if (!node)
8212688600edcb Lorenzo Pieralisi 2019-05-16 962 return NULL;
8212688600edcb Lorenzo Pieralisi 2019-05-16 963
8212688600edcb Lorenzo Pieralisi 2019-05-16 964 info.node = node;
8212688600edcb Lorenzo Pieralisi 2019-05-16 965 err = pci_for_each_dma_alias(to_pci_dev(dev),
8212688600edcb Lorenzo Pieralisi 2019-05-16 966 iort_pci_iommu_init, &info);
8212688600edcb Lorenzo Pieralisi 2019-05-16 967
8212688600edcb Lorenzo Pieralisi 2019-05-16 968 if (!err && iort_pci_rc_supports_ats(node))
8212688600edcb Lorenzo Pieralisi 2019-05-16 @969 dev->iommu_fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS;
8212688600edcb Lorenzo Pieralisi 2019-05-16 970 } else {
8212688600edcb Lorenzo Pieralisi 2019-05-16 971 int i = 0;
8212688600edcb Lorenzo Pieralisi 2019-05-16 972
8212688600edcb Lorenzo Pieralisi 2019-05-16 973 node = iort_scan_node(ACPI_IORT_NODE_NAMED_COMPONENT,
8212688600edcb Lorenzo Pieralisi 2019-05-16 974 iort_match_node_callback, dev);
8212688600edcb Lorenzo Pieralisi 2019-05-16 975 if (!node)
8212688600edcb Lorenzo Pieralisi 2019-05-16 976 return NULL;
8212688600edcb Lorenzo Pieralisi 2019-05-16 977
8212688600edcb Lorenzo Pieralisi 2019-05-16 978 do {
8212688600edcb Lorenzo Pieralisi 2019-05-16 979 parent = iort_node_map_platform_id(node, &streamid,
8212688600edcb Lorenzo Pieralisi 2019-05-16 980 IORT_IOMMU_TYPE,
8212688600edcb Lorenzo Pieralisi 2019-05-16 981 i++);
8212688600edcb Lorenzo Pieralisi 2019-05-16 982
8212688600edcb Lorenzo Pieralisi 2019-05-16 983 if (parent)
8212688600edcb Lorenzo Pieralisi 2019-05-16 984 err = iort_iommu_xlate(dev, parent, streamid);
8212688600edcb Lorenzo Pieralisi 2019-05-16 985 } while (parent && !err);
8212688600edcb Lorenzo Pieralisi 2019-05-16 986 }
8212688600edcb Lorenzo Pieralisi 2019-05-16 987
8212688600edcb Lorenzo Pieralisi 2019-05-16 988 /*
8212688600edcb Lorenzo Pieralisi 2019-05-16 989 * If we have reason to believe the IOMMU driver missed the initial
8212688600edcb Lorenzo Pieralisi 2019-05-16 990 * add_device callback for dev, replay it to get things in order.
8212688600edcb Lorenzo Pieralisi 2019-05-16 991 */
8212688600edcb Lorenzo Pieralisi 2019-05-16 992 if (!err) {
8212688600edcb Lorenzo Pieralisi 2019-05-16 993 ops = iort_fwspec_iommu_ops(dev);
8212688600edcb Lorenzo Pieralisi 2019-05-16 994 err = iort_add_device_replay(ops, dev);
8212688600edcb Lorenzo Pieralisi 2019-05-16 995 }
8212688600edcb Lorenzo Pieralisi 2019-05-16 996
8212688600edcb Lorenzo Pieralisi 2019-05-16 997 /* Ignore all other errors apart from EPROBE_DEFER */
8212688600edcb Lorenzo Pieralisi 2019-05-16 998 if (err == -EPROBE_DEFER) {
8212688600edcb Lorenzo Pieralisi 2019-05-16 999 ops = ERR_PTR(err);
8212688600edcb Lorenzo Pieralisi 2019-05-16 1000 } else if (err) {
8212688600edcb Lorenzo Pieralisi 2019-05-16 1001 dev_dbg(dev, "Adding to IOMMU failed: %d\n", err);
8212688600edcb Lorenzo Pieralisi 2019-05-16 1002 ops = NULL;
8212688600edcb Lorenzo Pieralisi 2019-05-16 1003 }
8212688600edcb Lorenzo Pieralisi 2019-05-16 1004
8212688600edcb Lorenzo Pieralisi 2019-05-16 1005 return ops;
8212688600edcb Lorenzo Pieralisi 2019-05-16 1006 }
8212688600edcb Lorenzo Pieralisi 2019-05-16 1007 #else
8212688600edcb Lorenzo Pieralisi 2019-05-16 1008 static inline const struct iommu_ops *iort_fwspec_iommu_ops(struct device *dev)
8212688600edcb Lorenzo Pieralisi 2019-05-16 1009 { return NULL; }
8212688600edcb Lorenzo Pieralisi 2019-05-16 1010 static inline int iort_add_device_replay(const struct iommu_ops *ops,
8212688600edcb Lorenzo Pieralisi 2019-05-16 1011 struct device *dev)
8212688600edcb Lorenzo Pieralisi 2019-05-16 1012 { return 0; }
8212688600edcb Lorenzo Pieralisi 2019-05-16 1013 int iort_iommu_msi_get_resv_regions(struct device *dev, struct list_head *head)
8212688600edcb Lorenzo Pieralisi 2019-05-16 1014 { return 0; }
8212688600edcb Lorenzo Pieralisi 2019-05-16 1015 const struct iommu_ops *iort_iommu_configure(struct device *dev)
8212688600edcb Lorenzo Pieralisi 2019-05-16 1016 { return NULL; }
8212688600edcb Lorenzo Pieralisi 2019-05-16 1017 #endif
8212688600edcb Lorenzo Pieralisi 2019-05-16 1018
:::::: The code at line 969 was first introduced by commit
:::::: 8212688600edcb4a147ab7e4634c448938f9121a ACPI/IORT: Fix build error when IOMMU_SUPPORT is disabled
:::::: TO: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
:::::: CC: Will Deacon <will.deacon@arm.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-09-24 16:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-24 16:18 [opencloudos:linux-5.4/lts/5.4.119-20.0009.spr 232/2441] drivers/acpi/arm64/iort.c:969:28: error: 'struct device' has no member named 'iommu_fwspec' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.