Messages in this thread | | | Date | Mon, 20 Feb 2017 09:33:34 +0800 | From | kbuild test robot <> | Subject | [tip:WIP.sched/core 102/154] include/linux/list.h:463:43: error: dereferencing pointer to incomplete type |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.sched/core head: 12372f63e2728a509817b56878cd6633d92053b3 commit: 39a8751a41237a0f039083161faddb8bf48e4e70 [102/154] sched/headers: Remove the <linux/mm_types.h> dependency from <linux/sched.h> config: xtensa-allmodconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 4.9.0 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 39a8751a41237a0f039083161faddb8bf48e4e70 # save the attached .config to linux build tree make.cross ARCH=xtensa
All errors (new ones prefixed by >>):
In file included from include/linux/list.h:8:0, from include/linux/module.h:9, from drivers/video/fbdev/auo_k190x.c:11: drivers/video/fbdev/auo_k190x.c: In function 'auok190xfb_dpy_deferred_io': >> include/linux/list.h:463:43: error: dereferencing pointer to incomplete type for (pos = list_first_entry(head, typeof(*pos), member); \ ^ include/linux/kernel.h:850:18: note: in definition of macro 'container_of' const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ include/linux/list.h:376:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^ include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ include/linux/kernel.h:850:48: warning: initialization from incompatible pointer type const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ include/linux/list.h:365:2: note: in expansion of macro 'container_of' container_of(ptr, type, member) ^ include/linux/list.h:376:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^ include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ >> include/linux/list.h:463:43: error: dereferencing pointer to incomplete type for (pos = list_first_entry(head, typeof(*pos), member); \ ^ include/linux/kernel.h:851:3: note: in definition of macro 'container_of' (type *)( (char *)__mptr - offsetof(type,member) );}) ^ include/linux/list.h:376:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^ include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ In file included from include/linux/compiler.h:58:0, from include/uapi/linux/stddef.h:1, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/video/fbdev/auo_k190x.c:11: >> include/linux/list.h:463:43: error: dereferencing pointer to incomplete type for (pos = list_first_entry(head, typeof(*pos), member); \ ^ include/linux/compiler-gcc.h:159:21: note: in definition of macro '__compiler_offsetof' __builtin_offsetof(a, b) ^ include/linux/kernel.h:851:29: note: in expansion of macro 'offsetof' (type *)( (char *)__mptr - offsetof(type,member) );}) ^ include/linux/list.h:365:2: note: in expansion of macro 'container_of' container_of(ptr, type, member) ^ include/linux/list.h:376:2: note: in expansion of macro 'list_entry' list_entry((ptr)->next, type, member) ^ include/linux/list.h:463:13: note: in expansion of macro 'list_first_entry' for (pos = list_first_entry(head, typeof(*pos), member); \ ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ In file included from include/linux/module.h:9:0, from drivers/video/fbdev/auo_k190x.c:11: include/linux/list.h:464:11: error: dereferencing pointer to incomplete type &pos->member != (head); \ ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ In file included from include/linux/list.h:8:0, from include/linux/module.h:9, from drivers/video/fbdev/auo_k190x.c:11: include/linux/list.h:409:40: error: dereferencing pointer to incomplete type list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/kernel.h:850:18: note: in definition of macro 'container_of' const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ include/linux/list.h:409:2: note: in expansion of macro 'list_entry' list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry' pos = list_next_entry(pos, member)) ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ include/linux/list.h:409:18: error: dereferencing pointer to incomplete type list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/kernel.h:850:49: note: in definition of macro 'container_of' const typeof( ((type *)0)->member ) *__mptr = (ptr); \ ^ include/linux/list.h:409:2: note: in expansion of macro 'list_entry' list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry' pos = list_next_entry(pos, member)) ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ include/linux/list.h:409:40: error: dereferencing pointer to incomplete type list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/kernel.h:851:3: note: in definition of macro 'container_of' (type *)( (char *)__mptr - offsetof(type,member) );}) ^ include/linux/list.h:409:2: note: in expansion of macro 'list_entry' list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/list.h:465:13: note: in expansion of macro 'list_next_entry' pos = list_next_entry(pos, member)) ^ drivers/video/fbdev/auo_k190x.c:330:2: note: in expansion of macro 'list_for_each_entry' list_for_each_entry(cur, &fbdefio->pagelist, lru) { ^ In file included from include/linux/compiler.h:58:0, from include/uapi/linux/stddef.h:1, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/linux/list.h:4, from include/linux/module.h:9, from drivers/video/fbdev/auo_k190x.c:11: include/linux/list.h:409:40: error: dereferencing pointer to incomplete type list_entry((pos)->member.next, typeof(*(pos)), member) ^ include/linux/compiler-gcc.h:159:21: note: in definition of macro '__compiler_offsetof' __builtin_offsetof(a, b) ^ include/linux/kernel.h:851:29: note: in expansion of macro 'offsetof' (type *)( (char *)__mptr - offsetof(type,member) );}) ^ include/linux/list.h:365:2: note: in expansion of macro 'container_of' container_of(ptr, type, member) ^ include/linux/list.h:409:2: note: in expansion of macro 'list_entry' list_entry((pos)->member.next, typeof(*(pos)), member) ^
vim +463 include/linux/list.h
37c42524 Denis V. Lunev 2007-10-16 447 * @pos: the &struct list_head to use as a loop cursor. 37c42524 Denis V. Lunev 2007-10-16 448 * @n: another &struct list_head to use as temporary storage 37c42524 Denis V. Lunev 2007-10-16 449 * @head: the head for your list. 37c42524 Denis V. Lunev 2007-10-16 450 */ 37c42524 Denis V. Lunev 2007-10-16 451 #define list_for_each_prev_safe(pos, n, head) \ 37c42524 Denis V. Lunev 2007-10-16 452 for (pos = (head)->prev, n = pos->prev; \ e66eed65 Linus Torvalds 2011-05-19 453 pos != (head); \ 37c42524 Denis V. Lunev 2007-10-16 454 pos = n, n = pos->prev) 37c42524 Denis V. Lunev 2007-10-16 455 37c42524 Denis V. Lunev 2007-10-16 456 /** ^1da177e Linus Torvalds 2005-04-16 457 * list_for_each_entry - iterate over list of given type 8e3a67a9 Randy Dunlap 2006-06-25 458 * @pos: the type * to use as a loop cursor. ^1da177e Linus Torvalds 2005-04-16 459 * @head: the head for your list. 3943f42c Andrey Utkin 2014-11-14 460 * @member: the name of the list_head within the struct. ^1da177e Linus Torvalds 2005-04-16 461 */ ^1da177e Linus Torvalds 2005-04-16 462 #define list_for_each_entry(pos, head, member) \ 93be3c2e Oleg Nesterov 2013-11-12 @463 for (pos = list_first_entry(head, typeof(*pos), member); \ e66eed65 Linus Torvalds 2011-05-19 464 &pos->member != (head); \ 8120e2e5 Oleg Nesterov 2013-11-12 465 pos = list_next_entry(pos, member)) ^1da177e Linus Torvalds 2005-04-16 466 ^1da177e Linus Torvalds 2005-04-16 467 /** ^1da177e Linus Torvalds 2005-04-16 468 * list_for_each_entry_reverse - iterate backwards over list of given type. 8e3a67a9 Randy Dunlap 2006-06-25 469 * @pos: the type * to use as a loop cursor. ^1da177e Linus Torvalds 2005-04-16 470 * @head: the head for your list. 3943f42c Andrey Utkin 2014-11-14 471 * @member: the name of the list_head within the struct.
:::::: The code at line 463 was first introduced by commit :::::: 93be3c2eb3371f022ad88acf1ab6bee8e3c38378 list: introduce list_last_entry(), use list_{first,last}_entry()
:::::: TO: Oleg Nesterov <oleg@redhat.com> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [unhandled content-type:application/gzip] | |