random: Fix random number generator.
authorBen Pfaff <blp@nicira.com>
Sat, 13 Nov 2010 01:02:17 +0000 (17:02 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 15 Nov 2010 17:32:58 +0000 (09:32 -0800)
As written, this "32-bit" random number generator nevers returns a value
bigger than 0xfffe0.  This fixes the problem.

lib/random.c

index 88ddb4a..7f89251 100644 (file)
@@ -103,7 +103,7 @@ static uint32_t
 random_next(void)
 {
     seed ^= seed << 13;
-    seed >>= 17;
+    seed ^= seed >> 17;
     seed ^= seed << 5;
 
     return seed;