tree: https://github.com/0day-ci/linux/commits/UPDATE-20211027-175235/Josef-Johansson/PCI-MSI-Re-add-checks-for-skip-masking-MSI-X-on-Xen-PV/20211018-142252 head: 91a896f30df2d4dcadb4e7cad7f098e887e3ad5f commit: 91a896f30df2d4dcadb4e7cad7f098e887e3ad5f PCI/MSI: Move non-mask check back into low level accessors date: 35 hours ago config: ia64-defconfig (attached as .config) compiler: ia64-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/91a896f30df2d4dcadb4e7cad7f098e887e3ad5f git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review UPDATE-20211027-175235/Josef-Johansson/PCI-MSI-Re-add-checks-for-skip-masking-MSI-X-on-Xen-PV/20211018-142252 git checkout 91a896f30df2d4dcadb4e7cad7f098e887e3ad5f # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=ia64 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): kernel/irq/msi.c: In function 'msi_check_reservation_mode': >> kernel/irq/msi.c:535:60: error: 'struct ' has no member named 'maskbit' 535 | return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit; | ^ kernel/irq/msi.c:536:1: error: control reaches end of non-void function [-Werror=return-type] 536 | } | ^ cc1: some warnings being treated as errors vim +535 kernel/irq/msi.c 2145ac9310b60c Marc Zyngier 2015-11-23 498 bc976233a872c0 Thomas Gleixner 2017-12-29 499 /* bc976233a872c0 Thomas Gleixner 2017-12-29 500 * Carefully check whether the device can use reservation mode. If bc976233a872c0 Thomas Gleixner 2017-12-29 501 * reservation mode is enabled then the early activation will assign a bc976233a872c0 Thomas Gleixner 2017-12-29 502 * dummy vector to the device. If the PCI/MSI device does not support bc976233a872c0 Thomas Gleixner 2017-12-29 503 * masking of the entry then this can result in spurious interrupts when bc976233a872c0 Thomas Gleixner 2017-12-29 504 * the device driver is not absolutely careful. But even then a malfunction bc976233a872c0 Thomas Gleixner 2017-12-29 505 * of the hardware could result in a spurious interrupt on the dummy vector bc976233a872c0 Thomas Gleixner 2017-12-29 506 * and render the device unusable. If the entry can be masked then the core bc976233a872c0 Thomas Gleixner 2017-12-29 507 * logic will prevent the spurious interrupt and reservation mode can be bc976233a872c0 Thomas Gleixner 2017-12-29 508 * used. For now reservation mode is restricted to PCI/MSI. bc976233a872c0 Thomas Gleixner 2017-12-29 509 */ bc976233a872c0 Thomas Gleixner 2017-12-29 510 static bool msi_check_reservation_mode(struct irq_domain *domain, bc976233a872c0 Thomas Gleixner 2017-12-29 511 struct msi_domain_info *info, bc976233a872c0 Thomas Gleixner 2017-12-29 512 struct device *dev) da5dd9e854d2ed Thomas Gleixner 2017-12-29 513 { bc976233a872c0 Thomas Gleixner 2017-12-29 514 struct msi_desc *desc; bc976233a872c0 Thomas Gleixner 2017-12-29 515 c6c9e2838c5f0b Thomas Gleixner 2020-08-26 516 switch(domain->bus_token) { c6c9e2838c5f0b Thomas Gleixner 2020-08-26 517 case DOMAIN_BUS_PCI_MSI: c6c9e2838c5f0b Thomas Gleixner 2020-08-26 518 case DOMAIN_BUS_VMD_MSI: c6c9e2838c5f0b Thomas Gleixner 2020-08-26 519 break; c6c9e2838c5f0b Thomas Gleixner 2020-08-26 520 default: bc976233a872c0 Thomas Gleixner 2017-12-29 521 return false; c6c9e2838c5f0b Thomas Gleixner 2020-08-26 522 } bc976233a872c0 Thomas Gleixner 2017-12-29 523 da5dd9e854d2ed Thomas Gleixner 2017-12-29 524 if (!(info->flags & MSI_FLAG_MUST_REACTIVATE)) da5dd9e854d2ed Thomas Gleixner 2017-12-29 525 return false; bc976233a872c0 Thomas Gleixner 2017-12-29 526 bc976233a872c0 Thomas Gleixner 2017-12-29 527 if (IS_ENABLED(CONFIG_PCI_MSI) && pci_msi_ignore_mask) bc976233a872c0 Thomas Gleixner 2017-12-29 528 return false; bc976233a872c0 Thomas Gleixner 2017-12-29 529 bc976233a872c0 Thomas Gleixner 2017-12-29 530 /* bc976233a872c0 Thomas Gleixner 2017-12-29 531 * Checking the first MSI descriptor is sufficient. MSIX supports bc976233a872c0 Thomas Gleixner 2017-12-29 532 * masking and MSI does so when the maskbit is set. bc976233a872c0 Thomas Gleixner 2017-12-29 533 */ bc976233a872c0 Thomas Gleixner 2017-12-29 534 desc = first_msi_entry(dev); bc976233a872c0 Thomas Gleixner 2017-12-29 @535 return desc->msi_attrib.is_msix || desc->msi_attrib.maskbit; da5dd9e854d2ed Thomas Gleixner 2017-12-29 536 } da5dd9e854d2ed Thomas Gleixner 2017-12-29 537 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org