Hi Chen, kernel test robot noticed the following build warnings: [auto build test WARNING on fac04efc5c793dccbd07e2d59af9f90b7fc0dca4] url: https://github.com/intel-lab-lkp/linux/commits/Chen-Wang/dt-bindings-pci-Add-Sophgo-SG2042-PCIe-host/20241209-152613 base: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 patch link: https://lore.kernel.org/r/1d82eff3670f60df24228e5c83cf663c6dd61eaf.1733726572.git.unicorn_wang%40outlook.com patch subject: [PATCH v2 2/5] PCI: sg2042: Add Sophgo SG2042 PCIe driver config: sh-randconfig-r071-20241215 (https://download.01.org/0day-ci/archive/20241215/202412151758.8ckkzHnf-lkp@xxxxxxxxx/config) compiler: sh4-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241215/202412151758.8ckkzHnf-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202412151758.8ckkzHnf-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from drivers/pci/controller/cadence/pcie-sg2042.c:23: >> drivers/pci/controller/cadence/../../../irqchip/irq-msi-lib.h:25:39: warning: 'struct msi_domain_info' declared inside parameter list will not be visible outside of this definition or declaration 25 | struct msi_domain_info *info); | ^~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:306:15: error: variable 'sg2042_pcie_msi_parent_ops' has initializer but incomplete type 306 | static struct msi_parent_ops sg2042_pcie_msi_parent_ops = { | ^~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:307:10: error: 'struct msi_parent_ops' has no member named 'required_flags' 307 | .required_flags = SG2042_PCIE_MSI_FLAGS_REQUIRED, | ^~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:301:41: error: 'MSI_FLAG_USE_DEF_DOM_OPS' undeclared here (not in a function) 301 | #define SG2042_PCIE_MSI_FLAGS_REQUIRED (MSI_FLAG_USE_DEF_DOM_OPS | \ | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:307:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_REQUIRED' 307 | .required_flags = SG2042_PCIE_MSI_FLAGS_REQUIRED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:302:41: error: 'MSI_FLAG_USE_DEF_CHIP_OPS' undeclared here (not in a function) 302 | MSI_FLAG_USE_DEF_CHIP_OPS) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:307:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_REQUIRED' 307 | .required_flags = SG2042_PCIE_MSI_FLAGS_REQUIRED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/pci/controller/cadence/pcie-sg2042.c:301:40: warning: excess elements in struct initializer 301 | #define SG2042_PCIE_MSI_FLAGS_REQUIRED (MSI_FLAG_USE_DEF_DOM_OPS | \ | ^ drivers/pci/controller/cadence/pcie-sg2042.c:307:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_REQUIRED' 307 | .required_flags = SG2042_PCIE_MSI_FLAGS_REQUIRED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:301:40: note: (near initialization for 'sg2042_pcie_msi_parent_ops') 301 | #define SG2042_PCIE_MSI_FLAGS_REQUIRED (MSI_FLAG_USE_DEF_DOM_OPS | \ | ^ drivers/pci/controller/cadence/pcie-sg2042.c:307:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_REQUIRED' 307 | .required_flags = SG2042_PCIE_MSI_FLAGS_REQUIRED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:308:10: error: 'struct msi_parent_ops' has no member named 'supported_flags' 308 | .supported_flags = SG2042_PCIE_MSI_FLAGS_SUPPORTED, | ^~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:304:41: error: 'MSI_GENERIC_FLAGS_MASK' undeclared here (not in a function) 304 | #define SG2042_PCIE_MSI_FLAGS_SUPPORTED MSI_GENERIC_FLAGS_MASK | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:308:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_SUPPORTED' 308 | .supported_flags = SG2042_PCIE_MSI_FLAGS_SUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:304:41: warning: excess elements in struct initializer 304 | #define SG2042_PCIE_MSI_FLAGS_SUPPORTED MSI_GENERIC_FLAGS_MASK | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:308:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_SUPPORTED' 308 | .supported_flags = SG2042_PCIE_MSI_FLAGS_SUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:304:41: note: (near initialization for 'sg2042_pcie_msi_parent_ops') 304 | #define SG2042_PCIE_MSI_FLAGS_SUPPORTED MSI_GENERIC_FLAGS_MASK | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:308:35: note: in expansion of macro 'SG2042_PCIE_MSI_FLAGS_SUPPORTED' 308 | .supported_flags = SG2042_PCIE_MSI_FLAGS_SUPPORTED, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:309:10: error: 'struct msi_parent_ops' has no member named 'bus_select_mask' 309 | .bus_select_mask = MATCH_PCI_MSI, | ^~~~~~~~~~~~~~~ >> drivers/pci/controller/cadence/../../../irqchip/irq-msi-lib.h:15:33: warning: excess elements in struct initializer 15 | #define MATCH_PCI_MSI (0) | ^ drivers/pci/controller/cadence/pcie-sg2042.c:309:35: note: in expansion of macro 'MATCH_PCI_MSI' 309 | .bus_select_mask = MATCH_PCI_MSI, | ^~~~~~~~~~~~~ drivers/pci/controller/cadence/../../../irqchip/irq-msi-lib.h:15:33: note: (near initialization for 'sg2042_pcie_msi_parent_ops') 15 | #define MATCH_PCI_MSI (0) | ^ drivers/pci/controller/cadence/pcie-sg2042.c:309:35: note: in expansion of macro 'MATCH_PCI_MSI' 309 | .bus_select_mask = MATCH_PCI_MSI, | ^~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:310:10: error: 'struct msi_parent_ops' has no member named 'bus_select_token' 310 | .bus_select_token = DOMAIN_BUS_NEXUS, | ^~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:310:35: warning: excess elements in struct initializer 310 | .bus_select_token = DOMAIN_BUS_NEXUS, | ^~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:310:35: note: (near initialization for 'sg2042_pcie_msi_parent_ops') drivers/pci/controller/cadence/pcie-sg2042.c:311:10: error: 'struct msi_parent_ops' has no member named 'prefix' 311 | .prefix = "SG2042-", | ^~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:311:35: warning: excess elements in struct initializer 311 | .prefix = "SG2042-", | ^~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:311:35: note: (near initialization for 'sg2042_pcie_msi_parent_ops') drivers/pci/controller/cadence/pcie-sg2042.c:312:10: error: 'struct msi_parent_ops' has no member named 'init_dev_msi_info' 312 | .init_dev_msi_info = msi_lib_init_dev_msi_info, | ^~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:312:35: warning: excess elements in struct initializer 312 | .init_dev_msi_info = msi_lib_init_dev_msi_info, | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/pci/controller/cadence/pcie-sg2042.c:312:35: note: (near initialization for 'sg2042_pcie_msi_parent_ops') drivers/pci/controller/cadence/pcie-sg2042.c: In function 'sg2042_pcie_setup_msi': drivers/pci/controller/cadence/pcie-sg2042.c:344:22: error: 'struct irq_domain' has no member named 'msi_parent_ops' 344 | parent_domain->msi_parent_ops = &sg2042_pcie_msi_parent_ops; | ^~ drivers/pci/controller/cadence/pcie-sg2042.c: At top level: drivers/pci/controller/cadence/pcie-sg2042.c:306:30: error: storage size of 'sg2042_pcie_msi_parent_ops' isn't known 306 | static struct msi_parent_ops sg2042_pcie_msi_parent_ops = { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ vim +25 drivers/pci/controller/cadence/../../../irqchip/irq-msi-lib.h 72e257c6f058032 Thomas Gleixner 2024-06-23 11 8c41ccec839c622 Thomas Gleixner 2024-06-23 12 #ifdef CONFIG_PCI_MSI 8c41ccec839c622 Thomas Gleixner 2024-06-23 13 #define MATCH_PCI_MSI BIT(DOMAIN_BUS_PCI_MSI) 8c41ccec839c622 Thomas Gleixner 2024-06-23 14 #else 8c41ccec839c622 Thomas Gleixner 2024-06-23 @15 #define MATCH_PCI_MSI (0) 8c41ccec839c622 Thomas Gleixner 2024-06-23 16 #endif 8c41ccec839c622 Thomas Gleixner 2024-06-23 17 496436f4a514a3f Thomas Gleixner 2024-06-23 18 #define MATCH_PLATFORM_MSI BIT(DOMAIN_BUS_PLATFORM_MSI) 496436f4a514a3f Thomas Gleixner 2024-06-23 19 72e257c6f058032 Thomas Gleixner 2024-06-23 20 int msi_lib_irq_domain_select(struct irq_domain *d, struct irq_fwspec *fwspec, 72e257c6f058032 Thomas Gleixner 2024-06-23 21 enum irq_domain_bus_token bus_token); 72e257c6f058032 Thomas Gleixner 2024-06-23 22 72e257c6f058032 Thomas Gleixner 2024-06-23 23 bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain, 72e257c6f058032 Thomas Gleixner 2024-06-23 24 struct irq_domain *real_parent, 72e257c6f058032 Thomas Gleixner 2024-06-23 @25 struct msi_domain_info *info); 72e257c6f058032 Thomas Gleixner 2024-06-23 26 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki