lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 20 Feb 2017 09:33:34 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     Ingo Molnar <mingo@...nel.org>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org, tipbuild@...or.com
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@...hat.com>
:::::: CC: Linus Torvalds <torvalds@...ux-foundation.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (48173 bytes)

Powered by blists - more mailing lists