[U-Boot] [PATCH v2] tools: gen_eth_addr: add getpid() to time(0) to avoid duplicated seed
Andreas Bießmann
andreas.devel at googlemail.com
Wed Sep 16 12:29:43 CEST 2015
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 <josh.wu at atmel.com>
Acked-by: Andreas Bießmann <andreas.devel at googlemail.com>
> ---
>
> 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
>
More information about the U-Boot
mailing list