Commit 3e4dad50 authored by Josh Wu's avatar Josh Wu Committed by Tom Rini

tools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed

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
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: default avatarJosh Wu <josh.wu@atmel.com>
Acked-by: default avatarAndreas Bießmann <andreas.devel@googlemail.com>
Acked-by: default avatarWolfgang Denk <wd@denx.de>
Tested-by: default avatarWolfgang Denk <wd@denx.de>
parent 1090a56c
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment