[PATCH] uml: use get_random_bytes() after random pool is seeded
Jeff Dike [Thu, 7 Dec 2006 04:34:55 +0000 (20:34 -0800)]
When the UML network driver generates random MACs for its devices, it was
possible for a number of UMLs to get the same MACs because the ethernet
initialization was done before the random pool was properly seeded.

This patch moves the initialization later so that it gets better randomness.

Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

arch/um/drivers/daemon_kern.c
arch/um/drivers/mcast_kern.c
arch/um/drivers/pcap_kern.c
arch/um/drivers/slip_kern.c
arch/um/drivers/slirp_kern.c
arch/um/os-Linux/drivers/ethertap_kern.c
arch/um/os-Linux/drivers/tuntap_kern.c

index 8243869..9c2e7a7 100644 (file)
@@ -98,4 +98,4 @@ static int register_daemon(void)
        return 0;
 }
 
-__initcall(register_daemon);
+late_initcall(register_daemon);
index c090fbd..52ccb7b 100644 (file)
@@ -127,4 +127,4 @@ static int register_mcast(void)
        return 0;
 }
 
-__initcall(register_mcast);
+late_initcall(register_mcast);
index 6e1ef85..e67362a 100644 (file)
@@ -109,4 +109,4 @@ static int register_pcap(void)
        return 0;
 }
 
-__initcall(register_pcap);
+late_initcall(register_pcap);
index 788da54..25634bd 100644 (file)
@@ -95,4 +95,4 @@ static int register_slip(void)
        return 0;
 }
 
-__initcall(register_slip);
+late_initcall(register_slip);
index ae322e1..b3ed8fb 100644 (file)
@@ -119,4 +119,4 @@ static int register_slirp(void)
        return 0;
 }
 
-__initcall(register_slirp);
+late_initcall(register_slirp);
index 16385e2..7054182 100644 (file)
@@ -105,4 +105,4 @@ static int register_ethertap(void)
        return 0;
 }
 
-__initcall(register_ethertap);
+late_initcall(register_ethertap);
index 0edbac6..76570a2 100644 (file)
@@ -90,4 +90,4 @@ static int register_tuntap(void)
        return 0;
 }
 
-__initcall(register_tuntap);
+late_initcall(register_tuntap);