On Mon, Jun 24, 2013 at 10:03 PM, Ben Pfaff <b...@nicira.com> wrote: > On Mon, Jun 24, 2013 at 03:50:45PM -0700, Ansis Atteka wrote: > > On Wed, Jun 19, 2013 at 1:17 PM, Ben Pfaff <b...@nicira.com> wrote: > > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > > --- > > > lib/random.c | 26 +++++++++++++++++--------- > > > 1 files changed, 17 insertions(+), 9 deletions(-) > > > > > > diff --git a/lib/random.c b/lib/random.c > > > index 45d428c..2572c1e 100644 > > > --- a/lib/random.c > > > +++ b/lib/random.c > > > @@ -1,5 +1,5 @@ > > > /* > > > - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc. > > > + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc. > > > * > > > * Licensed under the Apache License, Version 2.0 (the "License"); > > > * you may not use this file except in compliance with the License. > > > @@ -22,6 +22,8 @@ > > > #include <sys/time.h> > > > > > > #include "entropy.h" > > > +#include "hash.h" > > > +#include "ovs-thread.h" > > > #include "timeval.h" > > > #include "util.h" > > > > > > @@ -37,21 +39,25 @@ > > > * cryptographic-quality randomness. */ > > > > > > /* Current random state. */ > > > -static uint32_t seed; > > > +DEFINE_PER_THREAD_DATA(uint32_t, seed, 0); > > > > > > static uint32_t random_next(void); > > > > > > void > > > random_init(void) > > > { > > > - while (!seed) { > > > > > + uint32_t *seedp = seed_get(); > > > > + while (!*seedp) { > > > struct timeval tv; > > > uint32_t entropy; > > > + pthread_t self; > > > > > > xgettimeofday(&tv); > > > get_entropy_or_die(&entropy, 4); > > > > > get_entropy() is not thread safe and that makes this function thread > unsafe > > as well: get_entropy()->ovs_retval_to_string() uses "static char > > unknown[48]". > > The patch titled "Replace all uses of strerror() by ovs_strerror(), for > thread safety." should make ovs_retval_to_string() thread-safe, so I > believe that that is fixed earlier in the series. > > I think you are right, sorry!
Looks good to me.
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev