Re: [PATCH] rculist: Fix _list_check_srcu() macro

From: kernel test robot
Date: Mon Jul 13 2020 - 22:38:24 EST


Hi,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on rcu/dev]
[cannot apply to v5.8-rc5 next-20200713]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/madhuparnabhowmik10-gmail-com/rculist-Fix-_list_check_srcu-macro/20200714-015126
base: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
config: x86_64-rhel-7.6 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 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 <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from include/linux/pid.h:5,
from include/linux/sched.h:14,
from include/linux/kvm_host.h:12,
from arch/x86/kvm/mmu/page_track.c:14:
arch/x86/kvm/mmu/page_track.c: In function 'kvm_page_track_write':
>> include/linux/rculist.h:76:33: error: 'TRUE' undeclared (first use in this function)
76 | #define __list_check_srcu(cond) TRUE
| ^~~~
include/linux/rculist.h:727:7: note: in expansion of macro '__list_check_srcu'
727 | for (__list_check_srcu(cond), \
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c:232:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
232 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rculist.h:76:33: note: each undeclared identifier is reported only once for each function it appears in
76 | #define __list_check_srcu(cond) TRUE
| ^~~~
include/linux/rculist.h:727:7: note: in expansion of macro '__list_check_srcu'
727 | for (__list_check_srcu(cond), \
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c:232:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
232 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rculist.h:727:30: warning: left-hand operand of comma expression has no effect [-Wunused-value]
727 | for (__list_check_srcu(cond), \
| ^
arch/x86/kvm/mmu/page_track.c:232:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
232 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c: In function 'kvm_page_track_flush_slot':
>> include/linux/rculist.h:76:33: error: 'TRUE' undeclared (first use in this function)
76 | #define __list_check_srcu(cond) TRUE
| ^~~~
include/linux/rculist.h:727:7: note: in expansion of macro '__list_check_srcu'
727 | for (__list_check_srcu(cond), \
| ^~~~~~~~~~~~~~~~~
arch/x86/kvm/mmu/page_track.c:258:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
258 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rculist.h:727:30: warning: left-hand operand of comma expression has no effect [-Wunused-value]
727 | for (__list_check_srcu(cond), \
| ^
arch/x86/kvm/mmu/page_track.c:258:2: note: in expansion of macro 'hlist_for_each_entry_srcu'
258 | hlist_for_each_entry_srcu(n, &head->track_notifier_list, node,
| ^~~~~~~~~~~~~~~~~~~~~~~~~

vim +/TRUE +76 include/linux/rculist.h

58
59 #ifdef CONFIG_PROVE_RCU_LIST
60 #define __list_check_rcu(dummy, cond, extra...) \
61 ({ \
62 check_arg_count_one(extra); \
63 RCU_LOCKDEP_WARN(!(cond) && !rcu_read_lock_any_held(), \
64 "RCU-list traversed in non-reader section!"); \
65 })
66
67 #define __list_check_srcu(cond) \
68 ({ \
69 RCU_LOCKDEP_WARN(!(cond), \
70 "RCU-list traversed without holding the required lock!");\
71 })
72 #else
73 #define __list_check_rcu(dummy, cond, extra...) \
74 ({ check_arg_count_one(extra); })
75
> 76 #define __list_check_srcu(cond) TRUE
77 #endif
78

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip