kernel/irq/msi.c:535:60: error: 'struct <anonymous>' has no member named 'maskbit'

From: kernel test robot
Date: Thu Oct 28 2021 - 16:38:54 EST


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 <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

kernel/irq/msi.c: In function 'msi_check_reservation_mode':
>> kernel/irq/msi.c:535:60: error: 'struct <anonymous>' 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@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip