All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.