rculist: Fix _list_check_srcu() macro
diff mbox series

Message ID 20200713174846.8681-1-madhuparnabhowmik10@gmail.com
State New
Headers show
Series
  • rculist: Fix _list_check_srcu() macro
Related show

Commit Message

Madhuparna Bhowmik July 13, 2020, 5:48 p.m. UTC
From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>

This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
False.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
---
 include/linux/rculist.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Paul E. McKenney July 13, 2020, 9:02 p.m. UTC | #1
On Mon, Jul 13, 2020 at 11:18:46PM +0530, madhuparnabhowmik10@gmail.com wrote:
> From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> 
> This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> False.
> 
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>

Thank you, Madhuparna!  I am folding this into your original, but
with lowercase "true".

							Thanx, Paul

> ---
>  include/linux/rculist.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> index 516b4feb2682..a435ad62b90b 100644
> --- a/include/linux/rculist.h
> +++ b/include/linux/rculist.h
> @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
>  #define __list_check_rcu(dummy, cond, extra...)				\
>  	({ check_arg_count_one(extra); })
>  
> -#define __list_check_srcu(cond)
> +#define __list_check_srcu(cond)	TRUE
>  #endif
>  
>  /*
> -- 
> 2.17.1
>
Madhuparna Bhowmik July 13, 2020, 9:13 p.m. UTC | #2
On Mon, Jul 13, 2020 at 02:02:44PM -0700, Paul E. McKenney wrote:
> On Mon, Jul 13, 2020 at 11:18:46PM +0530, madhuparnabhowmik10@gmail.com wrote:
> > From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> > 
> > This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> > False.
> > 
> > Reported-by: kernel test robot <lkp@intel.com>
> > Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> 
> Thank you, Madhuparna!  I am folding this into your original, but
> with lowercase "true".
>
I am really sorry and thanks for applying this with the correction.

Regards,
Madhuparna
> 							Thanx, Paul
> 
> > ---
> >  include/linux/rculist.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> > index 516b4feb2682..a435ad62b90b 100644
> > --- a/include/linux/rculist.h
> > +++ b/include/linux/rculist.h
> > @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> >  #define __list_check_rcu(dummy, cond, extra...)				\
> >  	({ check_arg_count_one(extra); })
> >  
> > -#define __list_check_srcu(cond)
> > +#define __list_check_srcu(cond)	TRUE
> >  #endif
> >  
> >  /*
> > -- 
> > 2.17.1
> >
Paul E. McKenney July 13, 2020, 9:26 p.m. UTC | #3
On Tue, Jul 14, 2020 at 02:43:16AM +0530, Madhuparna Bhowmik wrote:
> On Mon, Jul 13, 2020 at 02:02:44PM -0700, Paul E. McKenney wrote:
> > On Mon, Jul 13, 2020 at 11:18:46PM +0530, madhuparnabhowmik10@gmail.com wrote:
> > > From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> > > 
> > > This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> > > False.
> > > 
> > > Reported-by: kernel test robot <lkp@intel.com>
> > > Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> > 
> > Thank you, Madhuparna!  I am folding this into your original, but
> > with lowercase "true".
> >
> I am really sorry and thanks for applying this with the correction.

No worries!  Just thought that I should mention it in case there was
some subtle reason why TRUE was needed in this case.  ;-)

							Thanx, Paul

> > > ---
> > >  include/linux/rculist.h | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> > > index 516b4feb2682..a435ad62b90b 100644
> > > --- a/include/linux/rculist.h
> > > +++ b/include/linux/rculist.h
> > > @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> > >  #define __list_check_rcu(dummy, cond, extra...)				\
> > >  	({ check_arg_count_one(extra); })
> > >  
> > > -#define __list_check_srcu(cond)
> > > +#define __list_check_srcu(cond)	TRUE
> > >  #endif
> > >  
> > >  /*
> > > -- 
> > > 2.17.1
> > >
Madhuparna Bhowmik July 13, 2020, 11:40 p.m. UTC | #4
On Mon, Jul 13, 2020 at 02:26:24PM -0700, Paul E. McKenney wrote:
> On Tue, Jul 14, 2020 at 02:43:16AM +0530, Madhuparna Bhowmik wrote:
> > On Mon, Jul 13, 2020 at 02:02:44PM -0700, Paul E. McKenney wrote:
> > > On Mon, Jul 13, 2020 at 11:18:46PM +0530, madhuparnabhowmik10@gmail.com wrote:
> > > > From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> > > > 
> > > > This patch fixes the macro _list_check_srcu() for CONFIG_PROVE_RCU_LIST =
> > > > False.
> > > > 
> > > > Reported-by: kernel test robot <lkp@intel.com>
> > > > Signed-off-by: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com>
> > > 
> > > Thank you, Madhuparna!  I am folding this into your original, but
> > > with lowercase "true".
> > >
> > I am really sorry and thanks for applying this with the correction.
> 
> No worries!  Just thought that I should mention it in case there was
> some subtle reason why TRUE was needed in this case.  ;-)
>
No, it was just a mistake.

Thanks,
Madhuparna

> 							Thanx, Paul
> 
> > > > ---
> > > >  include/linux/rculist.h | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > diff --git a/include/linux/rculist.h b/include/linux/rculist.h
> > > > index 516b4feb2682..a435ad62b90b 100644
> > > > --- a/include/linux/rculist.h
> > > > +++ b/include/linux/rculist.h
> > > > @@ -73,7 +73,7 @@ static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
> > > >  #define __list_check_rcu(dummy, cond, extra...)				\
> > > >  	({ check_arg_count_one(extra); })
> > > >  
> > > > -#define __list_check_srcu(cond)
> > > > +#define __list_check_srcu(cond)	TRUE
> > > >  #endif
> > > >  
> > > >  /*
> > > > -- 
> > > > 2.17.1
> > > >
kernel test robot July 14, 2020, 2:37 a.m. UTC | #5
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@intel.com>

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@lists.01.org

Patch
diff mbox series

diff --git a/include/linux/rculist.h b/include/linux/rculist.h
index 516b4feb2682..a435ad62b90b 100644
--- a/include/linux/rculist.h
+++ b/include/linux/rculist.h
@@ -73,7 +73,7 @@  static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
 #define __list_check_rcu(dummy, cond, extra...)				\
 	({ check_arg_count_one(extra); })
 
-#define __list_check_srcu(cond)
+#define __list_check_srcu(cond)	TRUE
 #endif
 
 /*