tree: https://github.com/ammarfaizi2/linux-block tglx/devel/devmsi head: ba77f809fa66b636222f6677ec7cf8faa1562fe7 commit: 022573e1aaf0745ab002f898c5d4aa0f0ae5ec09 [46/86] genirq/msi: Make msi_get_virq() device domain aware config: arm64-randconfig-r032-20221102 compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 791a7ae1ba3efd6bca96338e10ffde557ba83920) 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 # install arm64 cross compiling tool for clang build # apt-get install binutils-aarch64-linux-gnu # https://github.com/ammarfaizi2/linux-block/commit/022573e1aaf0745ab002f898c5d4aa0f0ae5ec09 git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block git fetch --no-tags ammarfaizi2-block tglx/devel/devmsi git checkout 022573e1aaf0745ab002f898c5d4aa0f0ae5ec09 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash kernel/irq/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> kernel/irq/msi.c:384:56: warning: operator '?:' has lower precedence than '+'; '+' will be evaluated first [-Wparentheses] desc = xa_load(&dev->msi.data->__store, base + pcimsi ? 0 : index); ~~~~~~~~~~~~~ ^ kernel/irq/msi.c:384:56: note: place parentheses around the '+' expression to silence this warning desc = xa_load(&dev->msi.data->__store, base + pcimsi ? 0 : index); ^ ( ) kernel/irq/msi.c:384:56: note: place parentheses around the '?:' expression to evaluate it first desc = xa_load(&dev->msi.data->__store, base + pcimsi ? 0 : index); ^ ( ) 1 warning generated. vim +384 kernel/irq/msi.c 352 353 /** 354 * msi_domain_get_virq - Lookup the Linux interrupt number for a MSI index on a interrupt domain 355 * @dev: Device to operate on 356 * @domid: Domain ID of the interrupt domain associated to the device 357 * @index: MSI interrupt index to look for (0-based) 358 * 359 * Return: The Linux interrupt number on success (> 0), 0 if not found 360 */ 361 unsigned int msi_domain_get_virq(struct device *dev, unsigned int domid, unsigned int index) 362 { 363 struct msi_desc *desc; 364 unsigned int ret = 0; 365 bool pcimsi = false; 366 int base; 367 368 if (!dev->msi.data) 369 return 0; 370 371 if (WARN_ON_ONCE(index >= MSI_MAX_INDEX)) 372 return 0; 373 374 /* This check is only valid for the PCI default MSI domain */ 375 if (dev_is_pci(dev) && domid == MSI_DEFAULT_DOMAIN) 376 pcimsi = to_pci_dev(dev)->msi_enabled; 377 378 msi_lock_descs(dev); 379 380 base = msi_get_domain_base_index(dev, domid); 381 if (base < 0) 382 return 0; 383 > 384 desc = xa_load(&dev->msi.data->__store, base + pcimsi ? 0 : index); 385 if (desc && desc->irq) { 386 /* 387 * PCI-MSI has only one descriptor for multiple interrupts. 388 * PCI-MSIX and platform MSI use a descriptor per 389 * interrupt. 390 */ 391 if (pcimsi) { 392 if (index < desc->nvec_used) 393 ret = desc->irq + index; 394 } else { 395 ret = desc->irq; 396 } 397 } 398 msi_unlock_descs(dev); 399 return ret; 400 } 401 EXPORT_SYMBOL_GPL(msi_domain_get_virq); 402 -- 0-DAY CI Kernel Test Service https://01.org/lkp