* [norov:assert 4/6] arch/x86/kernel/nmi_selftest.c:27:8: error: unknown type name 'cpumask'; did you mean 'cpumask_t'?
@ 2026-04-07 13:34 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-04-07 13:34 UTC (permalink / raw)
To: Yury Norov; +Cc: oe-kbuild-all
tree: https://github.com/norov/linux assert
head: 5e88fbeeb3c7355139ca86067d68ea8c77534b92
commit: 7a49ab0bc5eb96c752ad339794e476c19613cb5d [4/6] nmi_selftest
config: x86_64-buildonly-randconfig-001-20260407 (https://download.01.org/0day-ci/archive/20260407/202604072149.txbSL5wq-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260407/202604072149.txbSL5wq-lkp@intel.com/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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604072149.txbSL5wq-lkp@intel.com/
All errors (new ones prefixed by >>):
>> arch/x86/kernel/nmi_selftest.c:27:8: error: unknown type name 'cpumask'; did you mean 'cpumask_t'?
27 | static cpumask nmi_ipi_mask __initdata;
| ^~~~~~~
| cpumask_t
arch/x86/kernel/nmi_selftest.c: In function 'test_nmi_ipi_callback':
>> arch/x86/kernel/nmi_selftest.c:56:45: error: passing argument 2 of 'cpumask_test_and_clear_cpu' from incompatible pointer type [-Wincompatible-pointer-types]
56 | if (cpumask_test_and_clear_cpu(cpu, &nmi_ipi_mask))
| ^~~~~~~~~~~~~
| |
| int *
In file included from include/linux/smp.h:13,
from arch/x86/kernel/nmi_selftest.c:11:
include/linux/cpumask.h:677:58: note: expected 'struct cpumask *' but argument is of type 'int *'
677 | bool cpumask_test_and_clear_cpu(int cpu, struct cpumask *cpumask)
| ~~~~~~~~~~~~~~~~^~~~~~~
arch/x86/kernel/nmi_selftest.c: In function 'remote_ipi':
>> arch/x86/kernel/nmi_selftest.c:92:22: error: passing argument 1 of 'cpumask_copy' from incompatible pointer type [-Wincompatible-pointer-types]
92 | cpumask_copy(&nmi_ipi_mask, cpu_online_mask);
| ^~~~~~~~~~~~~
| |
| int *
include/linux/cpumask.h:932:35: note: expected 'struct cpumask *' but argument is of type 'int *'
932 | void cpumask_copy(struct cpumask *dstp, const struct cpumask *srcp)
| ~~~~~~~~~~~~~~~~^~~~
>> arch/x86/kernel/nmi_selftest.c:93:47: error: passing argument 2 of 'cpumask_clear_cpu' from incompatible pointer type [-Wincompatible-pointer-types]
93 | cpumask_clear_cpu(smp_processor_id(), &nmi_ipi_mask);
| ^~~~~~~~~~~~~
| |
| int *
include/linux/cpumask.h:629:72: note: expected 'struct cpumask *' but argument is of type 'int *'
629 | static __always_inline void cpumask_clear_cpu(int cpu, struct cpumask *dstp)
| ~~~~~~~~~~~~~~~~^~~~
>> arch/x86/kernel/nmi_selftest.c:94:28: error: passing argument 1 of 'cpumask_empty' from incompatible pointer type [-Wincompatible-pointer-types]
94 | if (!cpumask_empty(&nmi_ipi_mask))
| ^~~~~~~~~~~~~
| |
| int *
include/linux/cpumask.h:846:65: note: expected 'const struct cpumask *' but argument is of type 'int *'
846 | static __always_inline bool cpumask_empty(const struct cpumask *srcp)
| ~~~~~~~~~~~~~~~~~~~~~~^~~~
>> arch/x86/kernel/nmi_selftest.c:95:30: error: passing argument 1 of 'test_nmi_ipi' from incompatible pointer type [-Wincompatible-pointer-types]
95 | test_nmi_ipi(&nmi_ipi_mask);
| ^~~~~~~~~~~~~
| |
| int *
arch/x86/kernel/nmi_selftest.c:62:49: note: expected 'struct cpumask *' but argument is of type 'int *'
62 | static void __init test_nmi_ipi(struct cpumask *mask)
| ~~~~~~~~~~~~~~~~^~~~
arch/x86/kernel/nmi_selftest.c: In function 'local_ipi':
>> arch/x86/kernel/nmi_selftest.c:100:23: error: passing argument 1 of 'cpumask_clear' from incompatible pointer type [-Wincompatible-pointer-types]
100 | cpumask_clear(&nmi_ipi_mask);
| ^~~~~~~~~~~~~
| |
| int *
include/linux/cpumask.h:699:59: note: expected 'struct cpumask *' but argument is of type 'int *'
699 | static __always_inline void cpumask_clear(struct cpumask *dstp)
| ~~~~~~~~~~~~~~~~^~~~
>> arch/x86/kernel/nmi_selftest.c:101:45: error: passing argument 2 of 'cpumask_set_cpu' from incompatible pointer type [-Wincompatible-pointer-types]
101 | cpumask_set_cpu(smp_processor_id(), &nmi_ipi_mask);
| ^~~~~~~~~~~~~
| |
| int *
include/linux/cpumask.h:600:56: note: expected 'struct cpumask *' but argument is of type 'int *'
600 | void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp)
| ~~~~~~~~~~~~~~~~^~~~
arch/x86/kernel/nmi_selftest.c:102:22: error: passing argument 1 of 'test_nmi_ipi' from incompatible pointer type [-Wincompatible-pointer-types]
102 | test_nmi_ipi(&nmi_ipi_mask);
| ^~~~~~~~~~~~~
| |
| int *
arch/x86/kernel/nmi_selftest.c:62:49: note: expected 'struct cpumask *' but argument is of type 'int *'
62 | static void __init test_nmi_ipi(struct cpumask *mask)
| ~~~~~~~~~~~~~~~~^~~~
vim +27 arch/x86/kernel/nmi_selftest.c
> 11 #include <linux/smp.h>
12 #include <linux/cpumask.h>
13 #include <linux/delay.h>
14 #include <linux/init.h>
15 #include <linux/percpu.h>
16
17 #include <asm/apic.h>
18 #include <asm/nmi.h>
19
20 #define SUCCESS 0
21 #define FAILURE 1
22 #define TIMEOUT 2
23
24 static int __initdata nmi_fail;
25
26 /* check to see if NMI IPIs work on this machine */
> 27 static cpumask nmi_ipi_mask __initdata;
28
29 static int __initdata testcase_total;
30 static int __initdata testcase_successes;
31 static int __initdata unexpected_testcase_failures;
32 static int __initdata unexpected_testcase_unknowns;
33
34 static int __init nmi_unk_cb(unsigned int val, struct pt_regs *regs)
35 {
36 unexpected_testcase_unknowns++;
37 return NMI_HANDLED;
38 }
39
40 static void __init init_nmi_testsuite(void)
41 {
42 /* trap all the unknown NMIs we may generate */
43 register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk",
44 __initdata);
45 }
46
47 static void __init cleanup_nmi_testsuite(void)
48 {
49 unregister_nmi_handler(NMI_UNKNOWN, "nmi_selftest_unk");
50 }
51
52 static int __init test_nmi_ipi_callback(unsigned int val, struct pt_regs *regs)
53 {
54 int cpu = raw_smp_processor_id();
55
> 56 if (cpumask_test_and_clear_cpu(cpu, &nmi_ipi_mask))
57 return NMI_HANDLED;
58
59 return NMI_DONE;
60 }
61
62 static void __init test_nmi_ipi(struct cpumask *mask)
63 {
64 unsigned long timeout;
65
66 if (register_nmi_handler(NMI_LOCAL, test_nmi_ipi_callback,
67 NMI_FLAG_FIRST, "nmi_selftest", __initdata)) {
68 nmi_fail = FAILURE;
69 return;
70 }
71
72 /* sync above data before sending NMI */
73 wmb();
74
75 __apic_send_IPI_mask(mask, NMI_VECTOR);
76
77 /* Don't wait longer than a second */
78 timeout = USEC_PER_SEC;
79 while (!cpumask_empty(mask) && --timeout)
80 udelay(1);
81
82 /* What happens if we timeout, do we still unregister?? */
83 unregister_nmi_handler(NMI_LOCAL, "nmi_selftest");
84
85 if (!timeout)
86 nmi_fail = TIMEOUT;
87 return;
88 }
89
90 static void __init remote_ipi(void)
91 {
> 92 cpumask_copy(&nmi_ipi_mask, cpu_online_mask);
> 93 cpumask_clear_cpu(smp_processor_id(), &nmi_ipi_mask);
> 94 if (!cpumask_empty(&nmi_ipi_mask))
> 95 test_nmi_ipi(&nmi_ipi_mask);
96 }
97
98 static void __init local_ipi(void)
99 {
> 100 cpumask_clear(&nmi_ipi_mask);
> 101 cpumask_set_cpu(smp_processor_id(), &nmi_ipi_mask);
102 test_nmi_ipi(&nmi_ipi_mask);
103 }
104
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-04-07 13:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 13:34 [norov:assert 4/6] arch/x86/kernel/nmi_selftest.c:27:8: error: unknown type name 'cpumask'; did you mean 'cpumask_t'? kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.