Hi Johannes,
First bad commit (maybe != root cause):
tree:
https://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git linux-next
head: 80f9733114e8f925b88d8f4e65ee827640ce4253
commit: 68f5d3f3b6543266b29e047cfaf9842333019b4c [8/18] um: add PCI over virtio emulation
driver
config: um-allmodconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
#
https://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git/commit/?id=68f...
git remote add uml
https://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git
git fetch --no-tags uml linux-next
git checkout 68f5d3f3b6543266b29e047cfaf9842333019b4c
# save the attached .config to linux build tree
make W=1 ARCH=um
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
> arch/um/drivers/virt-pci.c:803:5: warning: no previous prototype
for 'um_pci_init' [-Wmissing-prototypes]
803 | int um_pci_init(void)
| ^~~~~~~~~~~
> arch/um/drivers/virt-pci.c:877:6: warning: no previous prototype
for 'um_pci_exit' [-Wmissing-prototypes]
877 | void um_pci_exit(void)
| ^~~~~~~~~~~
--
drivers/gpio/gpio-amd8111.c: In function 'amd_gpio_init':
> drivers/gpio/gpio-amd8111.c:211:10: error: implicit declaration
of function 'ioport_map'; did you mean 'ioremap'?
[-Werror=implicit-function-declaration]
211 | gp.pm = ioport_map(gp.pmbase +
PMBASE_OFFSET, PMBASE_SIZE);
| ^~~~~~~~~~
| ioremap
> drivers/gpio/gpio-amd8111.c:211:8: warning: assignment to
'void *' from 'int' makes pointer from integer without a cast
[-Wint-conversion]
211 | gp.pm = ioport_map(gp.pmbase + PMBASE_OFFSET,
PMBASE_SIZE);
| ^
> drivers/gpio/gpio-amd8111.c:226:3: error: implicit declaration of
function 'ioport_unmap' [-Werror=implicit-function-declaration]
226 |
ioport_unmap(gp.pm);
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
--
> lib/logic_iomem.c:85:15: warning: no previous prototype for
'ioremap' [-Wmissing-prototypes]
85 | void __iomem
*ioremap(phys_addr_t offset, size_t size)
| ^~~~~~~
> lib/logic_iomem.c:151:6: warning: no previous prototype for
'iounmap' [-Wmissing-prototypes]
151 | void iounmap(void __iomem
*addr)
| ^~~~~~~
> lib/logic_iomem.c:179:6: warning: no previous prototype for
'real_raw_writeb' [-Wmissing-prototypes]
179 | void real_raw_write ##
op(u ## sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~~~~
lib/logic_iomem.c:185:1: note: in expansion of macro 'MAKE_FALLBACK'
185 | MAKE_FALLBACK(b, 8);
| ^~~~~~~~~~~~~
> lib/logic_iomem.c:179:6: warning: no previous prototype for
'real_raw_writew' [-Wmissing-prototypes]
179 | void real_raw_write ##
op(u ## sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~~~~
lib/logic_iomem.c:186:1: note: in expansion of macro 'MAKE_FALLBACK'
186 | MAKE_FALLBACK(w, 16);
| ^~~~~~~~~~~~~
> lib/logic_iomem.c:179:6: warning: no previous prototype for
'real_raw_writel' [-Wmissing-prototypes]
179 | void real_raw_write ##
op(u ## sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~~~~
lib/logic_iomem.c:187:1: note: in expansion of macro 'MAKE_FALLBACK'
187 | MAKE_FALLBACK(l, 32);
| ^~~~~~~~~~~~~
> lib/logic_iomem.c:179:6: warning: no previous prototype for
'real_raw_writeq' [-Wmissing-prototypes]
179 | void real_raw_write ##
op(u ## sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~~~~
lib/logic_iomem.c:189:1: note: in expansion of macro 'MAKE_FALLBACK'
189 | MAKE_FALLBACK(q, 64);
| ^~~~~~~~~~~~~
> lib/logic_iomem.c:216:7: warning: no previous prototype for
'__raw_readb' [-Wmissing-prototypes]
216 | u##sz __raw_read ## op(const
volatile void __iomem *addr) \
| ^~~~~~~~~~
lib/logic_iomem.c:244:1: note: in expansion of macro 'MAKE_OP'
244 | MAKE_OP(b, 8);
| ^~~~~~~
> lib/logic_iomem.c:229:6: warning: no previous prototype for
'__raw_writeb' [-Wmissing-prototypes]
229 | void __raw_write ## op(u ##
sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~
lib/logic_iomem.c:244:1: note: in expansion of macro 'MAKE_OP'
244 | MAKE_OP(b, 8);
| ^~~~~~~
> lib/logic_iomem.c:216:7: warning: no previous prototype for
'__raw_readw' [-Wmissing-prototypes]
216 | u##sz __raw_read ## op(const
volatile void __iomem *addr) \
| ^~~~~~~~~~
lib/logic_iomem.c:245:1: note: in expansion of macro 'MAKE_OP'
245 | MAKE_OP(w, 16);
| ^~~~~~~
> lib/logic_iomem.c:229:6: warning: no previous prototype for
'__raw_writew' [-Wmissing-prototypes]
229 | void __raw_write ## op(u ##
sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~
lib/logic_iomem.c:245:1: note: in expansion of macro 'MAKE_OP'
245 | MAKE_OP(w, 16);
| ^~~~~~~
> lib/logic_iomem.c:216:7: warning: no previous prototype for
'__raw_readl' [-Wmissing-prototypes]
216 | u##sz __raw_read ## op(const
volatile void __iomem *addr) \
| ^~~~~~~~~~
lib/logic_iomem.c:246:1: note: in expansion of macro 'MAKE_OP'
246 | MAKE_OP(l, 32);
| ^~~~~~~
> lib/logic_iomem.c:229:6: warning: no previous prototype for
'__raw_writel' [-Wmissing-prototypes]
229 | void __raw_write ## op(u ##
sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~
lib/logic_iomem.c:246:1: note: in expansion of macro 'MAKE_OP'
246 | MAKE_OP(l, 32);
| ^~~~~~~
> lib/logic_iomem.c:216:7: warning: no previous prototype for
'__raw_readq' [-Wmissing-prototypes]
216 | u##sz __raw_read ## op(const
volatile void __iomem *addr) \
| ^~~~~~~~~~
lib/logic_iomem.c:248:1: note: in expansion of macro 'MAKE_OP'
248 | MAKE_OP(q, 64);
| ^~~~~~~
> lib/logic_iomem.c:229:6: warning: no previous prototype for
'__raw_writeq' [-Wmissing-prototypes]
229 | void __raw_write ## op(u ##
sz val, volatile void __iomem *addr) \
| ^~~~~~~~~~~
lib/logic_iomem.c:248:1: note: in expansion of macro 'MAKE_OP'
248 | MAKE_OP(q, 64);
| ^~~~~~~
> lib/logic_iomem.c:251:6: warning: no previous prototype for
'memset_io' [-Wmissing-prototypes]
251 | void memset_io(volatile void
__iomem *addr, int value, size_t size)
| ^~~~~~~~~
> lib/logic_iomem.c:273:6: warning: no previous prototype for
'memcpy_fromio' [-Wmissing-prototypes]
273 | void memcpy_fromio(void
*buffer, const volatile void __iomem *addr,
| ^~~~~~~~~~~~~
> lib/logic_iomem.c:297:6: warning: no previous prototype for
'memcpy_toio' [-Wmissing-prototypes]
297 | void memcpy_toio(volatile
void __iomem *addr, const void *buffer, size_t size)
| ^~~~~~~~~~~
--
In file included from drivers/dma/idxd/init.c:24:
drivers/dma/idxd/perfmon.h: In function 'event_to_pmu':
> drivers/dma/idxd/perfmon.h:24:13: error: 'struct
perf_event' has no member named 'pmu'
24 | pmu = event->pmu;
| ^~
drivers/dma/idxd/perfmon.h: In function 'event_to_idxd':
drivers/dma/idxd/perfmon.h:35:13: error: 'struct perf_event' has no member
named 'pmu'
35 | pmu = event->pmu;
| ^~
drivers/dma/idxd/init.c: In function 'idxd_init_module':
> drivers/dma/idxd/init.c:748:7: error: implicit declaration of
function 'cpu_feature_enabled'; did you mean 'pci_ari_enabled'?
[-Werror=implicit-function-declaration]
748 | if
(!cpu_feature_enabled(X86_FEATURE_MOVDIR64B)) {
| ^~~~~~~~~~~~~~~~~~~
| pci_ari_enabled
cc1: some warnings being treated as errors
--
drivers/dma/idxd/submit.c: In function 'idxd_submit_desc':
> drivers/dma/idxd/submit.c:112:3: error: implicit declaration of
function 'iosubmit_cmds512' [-Werror=implicit-function-declaration]
112
| iosubmit_cmds512(portal, desc->hw, 1);
| ^~~~~~~~~~~~~~~~
> drivers/dma/idxd/submit.c:120:8: error: implicit declaration of
function 'enqcmds' [-Werror=implicit-function-declaration]
120 | rc =
enqcmds(portal, desc->hw);
| ^~~~~~~
cc1: some warnings being treated as errors
--
In file included from drivers/dma/idxd/perfmon.c:7:
drivers/dma/idxd/perfmon.h: In function 'event_to_pmu':
> drivers/dma/idxd/perfmon.h:24:13: error: 'struct
perf_event' has no member named 'pmu'
24 | pmu = event->pmu;
| ^~
drivers/dma/idxd/perfmon.h: In function 'event_to_idxd':
drivers/dma/idxd/perfmon.h:35:13: error: 'struct perf_event' has no member
named 'pmu'
35 | pmu = event->pmu;
| ^~
drivers/dma/idxd/perfmon.c: In function 'is_idxd_event':
> drivers/dma/idxd/perfmon.c:82:32: error: 'struct
perf_event' has no member named 'pmu'
82 | return
&idxd_pmu->pmu == event->pmu;
| ^~
drivers/dma/idxd/perfmon.c: In function 'perfmon_collect_events':
> drivers/dma/idxd/perfmon.c:100:26: error: 'struct
perf_event' has no member named 'hw'
100 |
idxd_pmu->event_list[n]->hw.idx = n;
| ^~
In file included from drivers/dma/idxd/idxd.h:13,
from drivers/dma/idxd/perfmon.c:6:
> include/linux/perf_event.h:622:13: error: 'struct
perf_event' has no member named 'group_leader'
622 | if
((event)->group_leader == (event)) \
| ^~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/bug.h:20,
from ./arch/um/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from include/asm-generic/current.h:5,
from ./arch/um/include/generated/asm/current.h:1,
from include/linux/sched.h:12,
from include/linux/sched/task.h:10,
from drivers/dma/idxd/perfmon.c:4:
> include/linux/perf_event.h:623:42: error: 'struct
perf_event' has no member named 'sibling_list'
623 |
list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~
include/linux/kernel.h:703:26: note: in definition of macro 'container_of'
703 | void *__mptr = (void *)(ptr); \
| ^~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
> include/linux/perf_event.h:623:42: error: 'struct
perf_event' has no member named 'sibling_list'
623 |
list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~
include/linux/compiler_types.h:308:9: note: in definition of macro
'__compiletime_assert'
308 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro
'_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:704:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:704:20: note: in expansion of macro '__same_type'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:704:51: error: 'struct perf_event'
has no member named 'sibling_list'
704 |
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~
include/linux/compiler_types.h:308:9: note: in definition of macro
'__compiletime_assert'
308 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro
'_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:704:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:704:20: note: in expansion of macro '__same_type'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/perf_event.h:623:42: error: 'struct
perf_event' has no member named 'sibling_list'
623 |
list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~
include/linux/compiler_types.h:308:9: note: in definition of macro
'__compiletime_assert'
308 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro
'_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:704:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:705:6: note: in expansion of macro '__same_type'
705 | !__same_type(*(ptr), void), \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/compiler_types.h:140:35: error: 'struct
perf_event' has no member named 'sibling_list'
140 | #define
__compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro
'__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:707:21: note: in expansion of macro 'offsetof'
707 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:522:2: note: in expansion of macro 'list_entry'
522 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:628:13: note: in expansion of macro 'list_first_entry'
628 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/rculist.h:10,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/sched/task.h:10,
from drivers/dma/idxd/perfmon.c:4:
> include/linux/list.h:619:7: error: 'struct perf_event'
has no member named 'sibling_list'
619 | (&pos->member ==
(head))
| ^~
include/linux/list.h:629:8: note: in expansion of macro 'list_entry_is_head'
629 | !list_entry_is_head(pos, head, member); \
| ^~~~~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/perf_event.h:623:42: error: 'struct
perf_event' has no member named 'sibling_list'
623 |
list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~
include/linux/list.h:619:20: note: in definition of macro 'list_entry_is_head'
619 | (&pos->member == (head))
| ^~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/asm-generic/bug.h:20,
from ./arch/um/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/thread_info.h:12,
from include/asm-generic/current.h:5,
from ./arch/um/include/generated/asm/current.h:1,
from include/linux/sched.h:12,
from include/linux/sched/task.h:10,
from drivers/dma/idxd/perfmon.c:4:
include/linux/list.h:555:18: error: 'struct perf_event' has no member named
'sibling_list'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~
include/linux/kernel.h:703:26: note: in definition of macro 'container_of'
703 | void *__mptr = (void *)(ptr); \
| ^~~
include/linux/list.h:555:2: note: in expansion of macro 'list_entry'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~~~~~~~~~
include/linux/list.h:630:13: note: in expansion of macro 'list_next_entry'
630 | pos = list_next_entry(pos, member))
| ^~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
include/linux/list.h:555:18: error: 'struct perf_event' has no member named
'sibling_list'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~
include/linux/compiler_types.h:308:9: note: in definition of macro
'__compiletime_assert'
308 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro
'_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:704:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:704:20: note: in expansion of macro '__same_type'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:555:2: note: in expansion of macro 'list_entry'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~~~~~~~~~
include/linux/list.h:630:13: note: in expansion of macro 'list_next_entry'
630 | pos = list_next_entry(pos, member))
| ^~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/kernel.h:704:51: error: 'struct perf_event'
has no member named 'sibling_list'
704 |
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~
include/linux/compiler_types.h:308:9: note: in definition of macro
'__compiletime_assert'
308 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro
'_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:704:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:704:20: note: in expansion of macro '__same_type'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:555:2: note: in expansion of macro 'list_entry'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~~~~~~~~~
include/linux/list.h:630:13: note: in expansion of macro 'list_next_entry'
630 | pos = list_next_entry(pos, member))
| ^~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/list.h:555:18: error: 'struct perf_event' has no member named
'sibling_list'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~
include/linux/compiler_types.h:308:9: note: in definition of macro
'__compiletime_assert'
308 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:328:2: note: in expansion of macro
'_compiletime_assert'
328 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro
'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/kernel.h:704:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
704 | BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
| ^~~~~~~~~~~~~~~~
include/linux/kernel.h:705:6: note: in expansion of macro '__same_type'
705 | !__same_type(*(ptr), void), \
| ^~~~~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:555:2: note: in expansion of macro 'list_entry'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~~~~~~~~~
include/linux/list.h:630:13: note: in expansion of macro 'list_next_entry'
630 | pos = list_next_entry(pos, member))
| ^~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/compiler_types.h:140:35: error: 'struct
perf_event' has no member named 'sibling_list'
140 | #define
__compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro
'__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:707:21: note: in expansion of macro 'offsetof'
707 | ((type *)(__mptr - offsetof(type, member))); })
| ^~~~~~~~
include/linux/list.h:511:2: note: in expansion of macro 'container_of'
511 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:555:2: note: in expansion of macro 'list_entry'
555 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~~~~~~~~~
include/linux/list.h:630:13: note: in expansion of macro 'list_next_entry'
630 | pos = list_next_entry(pos, member))
| ^~~~~~~~~~~~~~~
include/linux/perf_event.h:623:3: note: in expansion of macro
'list_for_each_entry'
623 | list_for_each_entry((sibling), &(event)->sibling_list, sibling_list)
| ^~~~~~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:107:2: note: in expansion of macro
'for_each_sibling_event'
107 | for_each_sibling_event(event, leader) {
| ^~~~~~~~~~~~~~~~~~~~~~
> drivers/dma/idxd/perfmon.c:109:12: error: 'struct
perf_event' has no member named 'state'
109 | event->state
<= PERF_EVENT_STATE_OFF)
| ^~
drivers/dma/idxd/perfmon.c:116:26: error: 'struct perf_event' has no member
named 'hw'
116 | idxd_pmu->event_list[n]->hw.idx = n;
| ^~
drivers/dma/idxd/perfmon.c: In function 'perfmon_assign_hw_event':
drivers/dma/idxd/perfmon.c:127:36: error: 'struct perf_event' has no member
named 'hw'
127 | struct hw_perf_event *hwc = &event->hw;
| ^~
> drivers/dma/idxd/perfmon.c:129:5: error: 'struct
hw_perf_event' has no member named 'idx'
129 | hwc->idx = idx;
| ^~
> drivers/dma/idxd/perfmon.c:130:5: error: 'struct
hw_perf_event' has no member named 'config_base'
130 |
hwc->config_base = ioread64(CNTRCFG_REG(idxd, idx));
| ^~
> drivers/dma/idxd/perfmon.c:131:5: error: 'struct
hw_perf_event' has no member named 'event_base'
131 |
hwc->event_base = ioread64(CNTRCFG_REG(idxd, idx));
| ^~
drivers/dma/idxd/perfmon.c: In function 'perfmon_validate_group':
> drivers/dma/idxd/perfmon.c:157:35: error: 'struct
perf_event' has no member named 'group_leader'
157 | struct
perf_event *leader = event->group_leader;
| ^~
drivers/dma/idxd/perfmon.c: In function 'perfmon_pmu_event_init':
drivers/dma/idxd/perfmon.c:204:7: error: 'struct perf_event' has no member
named 'hw'
204 | event->hw.idx = -1;
| ^~
> drivers/dma/idxd/perfmon.c:206:11: error: 'struct
perf_event' has no member named 'attr'
206 | if
(event->attr.type != event->pmu->type)
| ^~
drivers/dma/idxd/perfmon.c:206:31: error: 'struct perf_event' has no member
named 'pmu'
206 | if (event->attr.type != event->pmu->type)
| ^~
drivers/dma/idxd/perfmon.c:210:11: error: 'struct perf_event' has no member
named 'attr'
210 | if (event->attr.sample_period)
| ^~
> drivers/dma/idxd/perfmon.c:213:11: error: 'struct
perf_event' has no member named 'cpu'
213 | if (event->cpu <
0)
| ^~
drivers/dma/idxd/perfmon.c:216:11: error: 'struct perf_event' has no member
named 'pmu'
216 | if (event->pmu != &idxd->idxd_pmu->pmu)
| ^~
drivers/dma/idxd/perfmon.c:219:7: error: 'struct perf_event' has no member
named 'hw'
219 | event->hw.event_base = ioread64(PERFMON_TABLE_OFFSET(idxd));
| ^~
drivers/dma/idxd/perfmon.c:220:7: error: 'struct perf_event' has no member
named 'cpu'
220 | event->cpu = idxd->idxd_pmu->cpu;
| ^~
drivers/dma/idxd/perfmon.c:221:7: error: 'struct perf_event' has no member
named 'hw'
221 | event->hw.config = event->attr.config;
| ^~
drivers/dma/idxd/perfmon.c:221:26: error: 'struct perf_event' has no member
named 'attr'
221 | event->hw.config = event->attr.config;
| ^~
drivers/dma/idxd/perfmon.c:223:11: error: 'struct perf_event' has no member
named 'group_leader'
223 | if (event->group_leader != event)
| ^~
drivers/dma/idxd/perfmon.c: In function 'perfmon_pmu_read_counter':
drivers/dma/idxd/perfmon.c:232:36: error: 'struct perf_event' has no member
named 'hw'
232 | struct hw_perf_event *hwc = &event->hw;
| ^~
drivers/dma/idxd/perfmon.c:234:16: error: 'struct hw_perf_event' has no member
named 'idx'
234 | int cntr = hwc->idx;
| ^~
drivers/dma/idxd/perfmon.c: In function 'perfmon_pmu_event_update':
drivers/dma/idxd/perfmon.c:246:36: error: 'struct perf_event' has no member
named 'hw'
246 | struct hw_perf_event *hwc = &event->hw;
| ^~
In file included from include/asm-generic/local64.h:22,
from ./arch/x86/include/generated/asm/local64.h:1,
from include/linux/u64_stats_sync.h:75,
from include/linux/cgroup-defs.h:20,
from include/linux/cgroup.h:28,
from include/linux/perf_event.h:57,
from drivers/dma/idxd/idxd.h:13,
from drivers/dma/idxd/perfmon.c:6:
drivers/dma/idxd/perfmon.c:249:37: error: 'struct hw_perf_event' has no member
named 'prev_count'
249 | prev_raw_count = local64_read(&hwc->prev_count);
| ^~
arch/x86/include/asm/local.h:16:42: note: in definition of macro 'local_read'
16 | #define local_read(l) atomic_long_read(&(l)->a)
| ^
drivers/dma/idxd/perfmon.c:249:20: note: in expansion of macro 'local64_read'
249 | prev_raw_count = local64_read(&hwc->prev_count);
| ^~~~~~~~~~~~
In file included from include/linux/atomic.h:82,
from include/linux/rcupdate.h:25,
from include/linux/rculist.h:11,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/sched/task.h:10,
from drivers/dma/idxd/perfmon.c:4:
drivers/dma/idxd/perfmon.c:251:31: error: 'struct hw_perf_event' has no member
named 'prev_count'
251 | } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
| ^~
include/asm-generic/atomic-instrumented.h:1798:9: note: in definition of macro
'cmpxchg_local'
1798 | typeof(ptr) __ai_ptr = (ptr); \
| ^~~
include/asm-generic/local64.h:45:34: note: in expansion of macro
'local_cmpxchg'
45 | #define local64_cmpxchg(l, o, n) local_cmpxchg((&(l)->a), (o), (n))
| ^~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:251:11: note: in expansion of macro
'local64_cmpxchg'
251 | } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
| ^~~~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:251:31: error: 'struct hw_perf_event' has no member
named 'prev_count'
251 | } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
| ^~
include/asm-generic/atomic-instrumented.h:1798:26: note: in definition of macro
'cmpxchg_local'
1798 | typeof(ptr) __ai_ptr = (ptr); \
| ^~~
include/asm-generic/local64.h:45:34: note: in expansion of macro
'local_cmpxchg'
45 | #define local64_cmpxchg(l, o, n) local_cmpxchg((&(l)->a), (o), (n))
| ^~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:251:11: note: in expansion of macro
'local64_cmpxchg'
251 | } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
| ^~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1799:43: error: invalid type argument of
unary '*' (have 'int')
1799 | instrument_atomic_write(__ai_ptr, sizeof(*__ai_ptr)); \
| ^~~~~~~~~
arch/x86/include/asm/local.h:124:3: note: in expansion of macro
'cmpxchg_local'
124 | (cmpxchg_local(&((l)->a.counter), (o), (n)))
| ^~~~~~~~~~~~~
include/asm-generic/local64.h:45:34: note: in expansion of macro
'local_cmpxchg'
45 | #define local64_cmpxchg(l, o, n) local_cmpxchg((&(l)->a), (o), (n))
| ^~~~~~~~~~~~~
drivers/dma/idxd/perfmon.c:251:11: note: in expansion of macro
'local64_cmpxchg'
251 | } while (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
| ^~~~~~~~~~~~~~~
include/asm-generic/atomic-instrumented.h:1799:26: warning: passing argument 1 of
'instrument_atomic_write' makes pointer from integer without a cast
[-Wint-conversion]
1799 | instrument_atomic_write(__ai_ptr, sizeof(*__ai_ptr)); \
| ^~~~~~~~
| |
| int
arch/x86/include/asm/local.h:124:3: note: in expansion of macro
'cmpxchg_local'
124 | (cmpxchg_local(&((l)->a.counter), (o), (n)))
| ^~~~~~~~~~~~~
include/asm-generic/local64.h:45:34: note: in expansion of macro
'local_cmpxchg'
..
vim +29 arch/um/include/asm/delay.h
0bc8fb4dda2b46 Johannes Berg 2020-02-13 18
0bc8fb4dda2b46 Johannes Berg 2020-02-13 19 static inline void um_udelay(unsigned long
usecs)
0bc8fb4dda2b46 Johannes Berg 2020-02-13 20 {
0bc8fb4dda2b46 Johannes Berg 2020-02-13 21 if (time_travel_mode == TT_MODE_INFCPU ||
0bc8fb4dda2b46 Johannes Berg 2020-02-13 22 time_travel_mode == TT_MODE_EXTERNAL) {
0bc8fb4dda2b46 Johannes Berg 2020-02-13 23 time_travel_ndelay(1000 * usecs);
0bc8fb4dda2b46 Johannes Berg 2020-02-13 24 return;
0bc8fb4dda2b46 Johannes Berg 2020-02-13 25 }
0bc8fb4dda2b46 Johannes Berg 2020-02-13 26 udelay(usecs);
0bc8fb4dda2b46 Johannes Berg 2020-02-13 27 }
0bc8fb4dda2b46 Johannes Berg 2020-02-13 28 #undef udelay
0bc8fb4dda2b46 Johannes Berg 2020-02-13 @29 #define udelay um_udelay
:::::: The code at line 29 was first introduced by commit
:::::: 0bc8fb4dda2b461491ec567b2333d13897780d8c um: Implement ndelay/udelay in time-travel
mode
:::::: TO: Johannes Berg <johannes.berg(a)intel.com>
:::::: CC: Richard Weinberger <richard(a)nod.at>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org