[LTP] [PATCH 1/4] tst_atomic: make tst_atomic_inc take a signed integer

Jan Stancek jstancek@redhat.com
Wed Apr 13 16:32:02 CEST 2016



----- Original Message -----
> From: "Cyril Hrubis" <chrubis@suse.cz>
> To: "Jan Stancek" <jstancek@redhat.com>
> Cc: ltp@lists.linux.it
> Sent: Wednesday, 13 April, 2016 4:07:02 PM
> Subject: Re: [LTP] [PATCH 1/4] tst_atomic: make tst_atomic_inc take a signed integer
> 
> Hi!
> > This is a preparation for upcoming patches, which add atomic_add_return(),
> > that takes signed integer.
> 
> What is the problem with unsigned integer?

All atomic code in kernel is int based. I wanted to match that as closely
as possible in our code.

> 
> > Signed-off-by: Jan Stancek <jstancek@redhat.com>
> > ---
> >  doc/test-writing-guidelines.txt | 2 +-
> >  include/tst_atomic.h            | 2 +-
> >  lib/newlib_tests/test08.c       | 2 +-
> >  lib/tst_test.c                  | 8 ++++----
> >  4 files changed, 7 insertions(+), 7 deletions(-)
> > 
> > diff --git a/doc/test-writing-guidelines.txt
> > b/doc/test-writing-guidelines.txt
> > index d0b14084c90b..c0ef33afd5bb 100644
> > --- a/doc/test-writing-guidelines.txt
> > +++ b/doc/test-writing-guidelines.txt
> > @@ -780,7 +780,7 @@ the user supplied cleanup to the test library.
> >  
> >  static void cleanup(void)
> >  {
> > -	static unsigned int flag;
> > +	static int flag;
> >  
> >  	if (tst_atomic_inc(&flag) != 1)
> >  		pthread_exit(NULL);
> > diff --git a/include/tst_atomic.h b/include/tst_atomic.h
> > index 75c713d38d2a..40b2c581f19d 100644
> > --- a/include/tst_atomic.h
> > +++ b/include/tst_atomic.h
> > @@ -18,7 +18,7 @@
> >  #ifndef TST_ATOMIC_H__
> >  #define TST_ATOMIC_H__
> >  
> > -static inline unsigned int tst_atomic_inc(unsigned int *v)
> > +static inline unsigned int tst_atomic_inc(int *v)
>                     ^
> 		 This should be removed as well, right?

Correct. I missed that.

> 
> >  {
> >  	return __sync_add_and_fetch(v, 1);
> >  }
> > diff --git a/lib/newlib_tests/test08.c b/lib/newlib_tests/test08.c
> > index 8fefc182650d..0a2023119a71 100644
> > --- a/lib/newlib_tests/test08.c
> > +++ b/lib/newlib_tests/test08.c
> > @@ -35,7 +35,7 @@ static void setup(void)
> >  
> >  static void cleanup(void)
> >  {
> > -	static unsigned int flag;
> > +	static int flag;
> >  
> >  	/* Avoid subsequent threads to enter the cleanup */
> >  	if (tst_atomic_inc(&flag) != 1)
> > diff --git a/lib/tst_test.c b/lib/tst_test.c
> > index 37265fe50951..66c0bc67127f 100644
> > --- a/lib/tst_test.c
> > +++ b/lib/tst_test.c
> > @@ -43,10 +43,10 @@ static float duration = -1;
> >  static pid_t main_pid;
> >  
> >  struct results {
> > -	unsigned int passed;
> > -	unsigned int skipped;
> > -	unsigned int failed;
> > -	unsigned int warnings;
> > +	int passed;
> > +	int skipped;
> > +	int failed;
> > +	int warnings;
> >  };
> 
> We print these values with %u in do_exit(), that should be updated as
> well.

This as well.

> 
> >  static struct results *results;
> > --
> > 1.8.3.1
> > 
> > 
> > --
> > Mailing list info: https://lists.linux.it/listinfo/ltp
> 
> --
> Cyril Hrubis
> chrubis@suse.cz
> 


More information about the ltp mailing list