From 3e4dad50320d20894710276eb09f2057c6985065 Mon Sep 17 00:00:00 2001 From: Josh Wu Date: Wed, 16 Sep 2015 18:21:04 +0800 Subject: tools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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: Josh Wu Acked-by: Andreas Bießmann Acked-by: Wolfgang Denk Tested-by: Wolfgang Denk --- tools/gen_eth_addr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools') 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 -- cgit v1.1