Hi Nam, kernel test robot noticed the following build warnings:
[auto build test WARNING on tip/master] [also build test WARNING on linus/master v6.16-rc3 next-20250627] [cannot apply to tip/x86/core tip/auto-latest] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Nam-Cao/x86-hyperv-Switch-to-msi_create_parent_irq_domain/20250626-225420 base: tip/master patch link: https://lore.kernel.org/r/0eafade05acb51022242635750cd4990f3adb0ac.1750947640.git.namcao%40linutronix.de patch subject: [PATCH 1/1] x86/hyperv: Switch to msi_create_parent_irq_domain() config: x86_64-buildonly-randconfig-002-20250628 (https://download.01.org/0day-ci/archive/20250628/[email protected]/config) compiler: clang version 20.1.7 (https://github.com/llvm/llvm-project 6146a88f60492b520a36f8f8f3231e15f3cc6082) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250628/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): In file included from drivers/irqchip/irq-msi-lib.c:7: >> include/linux/irqchip/irq-msi-lib.h:25:18: warning: declaration of 'struct >> msi_domain_info' will not be visible outside of this function [-Wvisibility] 25 | struct msi_domain_info *info); | ^ >> drivers/irqchip/irq-msi-lib.c:28:18: warning: declaration of 'struct >> msi_domain_info' will not be visible outside of this function [-Wvisibility] 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:26:6: error: conflicting types for 'msi_lib_init_dev_msi_info' 26 | bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain, | ^ include/linux/irqchip/irq-msi-lib.h:23:6: note: previous declaration is here 23 | bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain, | ^ drivers/irqchip/irq-msi-lib.c:30:51: error: no member named 'msi_parent_ops' in 'struct irq_domain' 30 | const struct msi_parent_ops *pops = real_parent->msi_parent_ops; | ~~~~~~~~~~~ ^ drivers/irqchip/irq-msi-lib.c:31:30: error: incomplete definition of type 'struct msi_domain_info' 31 | struct irq_chip *chip = info->chip; | ~~~~^ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:43:31: error: incomplete definition of type 'const struct msi_parent_ops' 43 | if (domain->bus_token == pops->bus_select_token) { | ~~~~^ include/linux/irqdomain.h:27:8: note: forward declaration of 'struct msi_parent_ops' 27 | struct msi_parent_ops; | ^ drivers/irqchip/irq-msi-lib.c:51:23: error: incomplete definition of type 'const struct msi_parent_ops' 51 | required_flags = pops->required_flags; | ~~~~^ include/linux/irqdomain.h:27:8: note: forward declaration of 'struct msi_parent_ops' 27 | struct msi_parent_ops; | ^ drivers/irqchip/irq-msi-lib.c:54:13: error: incomplete definition of type 'struct msi_domain_info' 54 | switch(info->bus_token) { | ~~~~^ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:68:24: error: incomplete definition of type 'struct msi_domain_info' 68 | if (WARN_ON_ONCE(info->flags)) | ~~~~^ include/asm-generic/bug.h:117:25: note: expanded from macro 'WARN_ON_ONCE' 117 | int __ret_warn_on = !!(condition); \ | ^~~~~~~~~ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:72:7: error: incomplete definition of type 'struct msi_domain_info' 72 | info->flags = MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS | MSI_FLAG_FREE_MSI_DESCS; | ~~~~^ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:72:17: error: use of undeclared identifier 'MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS' 72 | info->flags = MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS | MSI_FLAG_FREE_MSI_DESCS; | ^ drivers/irqchip/irq-msi-lib.c:72:51: error: use of undeclared identifier 'MSI_FLAG_FREE_MSI_DESCS' 72 | info->flags = MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS | MSI_FLAG_FREE_MSI_DESCS; | ^ drivers/irqchip/irq-msi-lib.c:76:22: error: use of undeclared identifier 'MSI_FLAG_PCI_MSI_MASK_PARENT' 76 | required_flags &= ~MSI_FLAG_PCI_MSI_MASK_PARENT; | ^ drivers/irqchip/irq-msi-lib.c:91:6: error: incomplete definition of type 'struct msi_domain_info' 91 | info->flags &= pops->supported_flags; | ~~~~^ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:91:23: error: incomplete definition of type 'const struct msi_parent_ops' 91 | info->flags &= pops->supported_flags; | ~~~~^ include/linux/irqdomain.h:27:8: note: forward declaration of 'struct msi_parent_ops' 27 | struct msi_parent_ops; | ^ drivers/irqchip/irq-msi-lib.c:93:6: error: incomplete definition of type 'struct msi_domain_info' 93 | info->flags |= required_flags; | ~~~~^ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) | ^ drivers/irqchip/irq-msi-lib.c:96:29: error: incomplete definition of type 'const struct msi_parent_ops' 96 | if (!chip->irq_eoi && (pops->chip_flags & MSI_CHIP_FLAG_SET_EOI)) | ~~~~^ include/linux/irqdomain.h:27:8: note: forward declaration of 'struct msi_parent_ops' 27 | struct msi_parent_ops; | ^ drivers/irqchip/irq-msi-lib.c:96:44: error: use of undeclared identifier 'MSI_CHIP_FLAG_SET_EOI' 96 | if (!chip->irq_eoi && (pops->chip_flags & MSI_CHIP_FLAG_SET_EOI)) | ^ drivers/irqchip/irq-msi-lib.c:98:29: error: incomplete definition of type 'const struct msi_parent_ops' 98 | if (!chip->irq_ack && (pops->chip_flags & MSI_CHIP_FLAG_SET_ACK)) | ~~~~^ include/linux/irqdomain.h:27:8: note: forward declaration of 'struct msi_parent_ops' 27 | struct msi_parent_ops; | ^ drivers/irqchip/irq-msi-lib.c:98:44: error: use of undeclared identifier 'MSI_CHIP_FLAG_SET_ACK' 98 | if (!chip->irq_ack && (pops->chip_flags & MSI_CHIP_FLAG_SET_ACK)) | ^ drivers/irqchip/irq-msi-lib.c:113:39: error: incomplete definition of type 'struct msi_domain_info' 113 | if (!chip->irq_set_affinity && !(info->flags & MSI_FLAG_NO_AFFINITY)) | ~~~~^ drivers/irqchip/irq-msi-lib.c:28:18: note: forward declaration of 'struct msi_domain_info' 28 | struct msi_domain_info *info) vim +25 include/linux/irqchip/irq-msi-lib.h 496436f4a514a3 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 19 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 20 int msi_lib_irq_domain_select(struct irq_domain *d, struct irq_fwspec *fwspec, 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 21 enum irq_domain_bus_token bus_token); 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 22 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 23 bool msi_lib_init_dev_msi_info(struct device *dev, struct irq_domain *domain, 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 24 struct irq_domain *real_parent, 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 @25 struct msi_domain_info *info); 72e257c6f05803 drivers/irqchip/irq-msi-lib.h Thomas Gleixner 2024-06-23 26 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
