On 9/24/2020 1:03 PM, kernel test robot wrote: > Hi Dave, > > I love your patch! Yet something to improve: > > [auto build test ERROR on vkoul-dmaengine/next] > [also build test ERROR on linus/master v5.9-rc6] > [cannot apply to tip/x86/core tip/master next-20200924] > [If your patch is applied to the wrong git tree, kindly drop us a note. Hi 0-day team. This is a tricky one. The code is based on vkou-dmaengine/next, however, it's missing the patch series from the tip tree branch x86/pasid: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=x86/pasid This is where the compile error comes from. We are missing the ENQCMD enumeration support from the tip tree. Essentially if you merge in the tip branch it should address this issue. If there's a better solution for the future please let me know. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch] > > url: https://github.com/0day-ci/linux/commits/Dave-Jiang/Add-shared-workqueue-support-for-idxd-driver/20200925-020242 > base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next > config: x86_64-allyesconfig (attached as .config) > compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 > reproduce (this is a W=1 build): > # save the attached .config to linux build tree > make W=1 ARCH=x86_64 > > If you fix the issue, kindly add following tag as appropriate > Reported-by: kernel test robot > > All errors (new ones prefixed by >>): > > In file included from arch/x86/include/asm/tsc.h:9, > from arch/x86/include/asm/timex.h:6, > from include/linux/timex.h:65, > from include/linux/time32.h:13, > from include/linux/time.h:73, > from include/linux/stat.h:19, > from include/linux/module.h:13, > from drivers/dma/idxd/init.c:5: > drivers/dma/idxd/init.c: In function 'idxd_init_module': >>> drivers/dma/idxd/init.c:525:20: error: 'X86_FEATURE_ENQCMD' undeclared (first use in this function); did you mean 'X86_FEATURE_PCID'? > 525 | if (!boot_cpu_has(X86_FEATURE_ENQCMD)) > | ^~~~~~~~~~~~~~~~~~ > arch/x86/include/asm/cpufeature.h:118:24: note: in definition of macro 'cpu_has' > 118 | (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \ > | ^~~ > drivers/dma/idxd/init.c:525:7: note: in expansion of macro 'boot_cpu_has' > 525 | if (!boot_cpu_has(X86_FEATURE_ENQCMD)) > | ^~~~~~~~~~~~ > drivers/dma/idxd/init.c:525:20: note: each undeclared identifier is reported only once for each function it appears in > 525 | if (!boot_cpu_has(X86_FEATURE_ENQCMD)) > | ^~~~~~~~~~~~~~~~~~ > arch/x86/include/asm/cpufeature.h:118:24: note: in definition of macro 'cpu_has' > 118 | (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \ > | ^~~ > drivers/dma/idxd/init.c:525:7: note: in expansion of macro 'boot_cpu_has' > 525 | if (!boot_cpu_has(X86_FEATURE_ENQCMD)) > | ^~~~~~~~~~~~ > > # https://github.com/0day-ci/linux/commit/8c78721a970a316ba914bdaaea606e152462fe94 > git remote add linux-review https://github.com/0day-ci/linux > git fetch --no-tags linux-review Dave-Jiang/Add-shared-workqueue-support-for-idxd-driver/20200925-020242 > git checkout 8c78721a970a316ba914bdaaea606e152462fe94 > vim +525 drivers/dma/idxd/init.c > > 511 > 512 static int __init idxd_init_module(void) > 513 { > 514 int err, i; > 515 > 516 /* > 517 * If the CPU does not support MOVDIR64B or ENQCMDS, there's no point in > 518 * enumerating the device. We can not utilize it. > 519 */ > 520 if (!boot_cpu_has(X86_FEATURE_MOVDIR64B)) { > 521 pr_warn("idxd driver failed to load without MOVDIR64B.\n"); > 522 return -ENODEV; > 523 } > 524 > > 525 if (!boot_cpu_has(X86_FEATURE_ENQCMD)) > 526 pr_warn("Platform does not have ENQCMD(S) support.\n"); > 527 else > 528 support_enqcmd = true; > 529 > 530 mutex_init(&idxd_idr_lock); > 531 for (i = 0; i < IDXD_TYPE_MAX; i++) > 532 idr_init(&idxd_idrs[i]); > 533 > 534 err = idxd_register_bus_type(); > 535 if (err < 0) > 536 return err; > 537 > 538 err = idxd_register_driver(); > 539 if (err < 0) > 540 goto err_idxd_driver_register; > 541 > 542 err = idxd_cdev_register(); > 543 if (err) > 544 goto err_cdev_register; > 545 > 546 err = pci_register_driver(&idxd_pci_driver); > 547 if (err) > 548 goto err_pci_register; > 549 > 550 return 0; > 551 > 552 err_pci_register: > 553 idxd_cdev_remove(); > 554 err_cdev_register: > 555 idxd_unregister_driver(); > 556 err_idxd_driver_register: > 557 idxd_unregister_bus_type(); > 558 return err; > 559 } > 560 module_init(idxd_init_module); > 561 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org >