From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Andreas_Bie=c3=9fmann?= Date: Wed, 16 Sep 2015 12:29:43 +0200 Subject: [U-Boot] [PATCH v2] tools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed In-Reply-To: <1442398864-1312-1-git-send-email-josh.wu@atmel.com> References: <1442398864-1312-1-git-send-email-josh.wu@atmel.com> Message-ID: <55F94497.6080204@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 09/16/2015 12:21 PM, Josh Wu wrote: > As 'time(0) | getpid()' will have a lot of duplicated value. It is not a > expected behavior. We expect different value for the seed when when run when when ... could be fixed when applied > it in many times. > > So this patch will left shift the getpid() and add to time(0). That > avoid duplicated value. > > Test command is like: > % RUN=0; while [ $RUN -lt 10000 ]; do > tools/gen_eth_addr; RUN=$(($RUN+1)); done | sort | uniq | wc -l > 10000 > > This patch is incorporated with suggestions made by Wolfgang Denk and Andreas > Bie?mann. Thanks them a lot. > > Signed-off-by: Josh Wu Acked-by: Andreas Bie?mann > --- > > Changes in v2: > - left shift and add the getpid() value instead of removing it. > > tools/gen_eth_addr.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/gen_eth_addr.c b/tools/gen_eth_addr.c > index bf9d935..5fa3e0c 100644 > --- a/tools/gen_eth_addr.c > +++ b/tools/gen_eth_addr.c > @@ -15,7 +15,7 @@ main(int argc, char *argv[]) > { > unsigned long ethaddr_low, ethaddr_high; > > - srand(time(0) | getpid()); > + srand(time(0) + (getpid() << 8)); > > /* > * setting the 2nd LSB in the most significant byte of >