[PATCH] uml: use get_random_bytes() after random pool is seeded
authorJeff Dike <jdike@addtoit.com>
Thu, 7 Dec 2006 04:34:55 +0000 (20:34 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Thu, 7 Dec 2006 16:39:29 +0000 (08:39 -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 824386974f88902469f2d95713ae9e4bf6a2928f..9c2e7a758f211804d8618f7bae98c82e42f57fc5 100644 (file)
@@ -98,4 +98,4 @@ static int register_daemon(void)
        return 0;
 }
 
-__initcall(register_daemon);
+late_initcall(register_daemon);
index c090fbd464e7c9c7713d0eb6456aa859d69eb831..52ccb7b53cd24d946d7d1d92260832cea552ea4d 100644 (file)
@@ -127,4 +127,4 @@ static int register_mcast(void)
        return 0;
 }
 
-__initcall(register_mcast);
+late_initcall(register_mcast);
index 6e1ef8558283254faf6c28f462cf71b90cb6626f..e67362acf0e7b554089d7206230812c6e970405a 100644 (file)
@@ -109,4 +109,4 @@ static int register_pcap(void)
        return 0;
 }
 
-__initcall(register_pcap);
+late_initcall(register_pcap);
index 788da5439a2defd3b18837e74828b3ec75457ef6..25634bd1f585e13c9563695f2ec2bc13c8318718 100644 (file)
@@ -95,4 +95,4 @@ static int register_slip(void)
        return 0;
 }
 
-__initcall(register_slip);
+late_initcall(register_slip);
index ae322e1c8a8753e3794c18cafa20d5d3af6d9b2d..b3ed8fb874ab2ae0b3e8d54c5aa76d3fcd9a5d81 100644 (file)
@@ -119,4 +119,4 @@ static int register_slirp(void)
        return 0;
 }
 
-__initcall(register_slirp);
+late_initcall(register_slirp);
index 16385e2ada854ebd1c965364a6d065f709294c3f..70541821775f3167c4c6871f8dd2a65917df18c4 100644 (file)
@@ -105,4 +105,4 @@ static int register_ethertap(void)
        return 0;
 }
 
-__initcall(register_ethertap);
+late_initcall(register_ethertap);
index 0edbac63c52708009ac792442fee6eb75dc2fbb5..76570a2c25c33bae1a799a61fb54078301304b29 100644 (file)
@@ -90,4 +90,4 @@ static int register_tuntap(void)
        return 0;
 }
 
-__initcall(register_tuntap);
+late_initcall(register_tuntap);