aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/random.h
diff options
context:
space:
mode:
authorAkinobu Mita <akinobu.mita@gmail.com>2012-12-17 19:04:23 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-17 20:15:26 -0500
commit496f2f93b1cc286f5a4f4f9acdc1e5314978683f (patch)
tree464fa6bd115ad4e3bedc02a0b0796a9f9e055ccc /include/linux/random.h
parent31279b1457f992f24eee8d45ddd647f5fce42cf6 (diff)
random32: rename random32 to prandom
This renames all random32 functions to have 'prandom_' prefix as follows: void prandom_seed(u32 seed); /* rename from srandom32() */ u32 prandom_u32(void); /* rename from random32() */ void prandom_seed_state(struct rnd_state *state, u64 seed); /* rename from prandom32_seed() */ u32 prandom_u32_state(struct rnd_state *state); /* rename from prandom32() */ The purpose of this renaming is to prevent some kernel developers from assuming that prandom32() and random32() might imply that only prandom32() was the one using a pseudo-random number generator by prandom32's "p", and the result may be a very embarassing security exposure. This concern was expressed by Theodore Ts'o. And furthermore, I'm going to introduce new functions for getting the requested number of pseudo-random bytes. If I continue to use both prandom32 and random32 prefixes for these functions, the confusion is getting worse. As a result of this renaming, "prandom_" is the common prefix for pseudo-random number library. Currently, srandom32() and random32() are preserved because it is difficult to rename too many users at once. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: "Theodore Ts'o" <tytso@mit.edu> Cc: Robert Love <robert.w.love@intel.com> Cc: Michel Lespinasse <walken@google.com> Cc: Valdis Kletnieks <valdis.kletnieks@vt.edu> Cc: David Laight <david.laight@aculab.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Artem Bityutskiy <dedekind1@gmail.com> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/random.h')
-rw-r--r--include/linux/random.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/include/linux/random.h b/include/linux/random.h
index 6330ed47b38b..db6debc6649e 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -25,10 +25,17 @@ extern const struct file_operations random_fops, urandom_fops;
25unsigned int get_random_int(void); 25unsigned int get_random_int(void);
26unsigned long randomize_range(unsigned long start, unsigned long end, unsigned long len); 26unsigned long randomize_range(unsigned long start, unsigned long end, unsigned long len);
27 27
28u32 random32(void); 28u32 prandom_u32(void);
29void srandom32(u32 seed); 29void prandom_seed(u32 seed);
30 30
31u32 prandom32(struct rnd_state *); 31/*
32 * These macros are preserved for backward compatibility and should be
33 * removed as soon as a transition is finished.
34 */
35#define random32() prandom_u32()
36#define srandom32(seed) prandom_seed(seed)
37
38u32 prandom_u32_state(struct rnd_state *);
32 39
33/* 40/*
34 * Handle minimum values for seeds 41 * Handle minimum values for seeds
@@ -39,11 +46,11 @@ static inline u32 __seed(u32 x, u32 m)
39} 46}
40 47
41/** 48/**
42 * prandom32_seed - set seed for prandom32(). 49 * prandom_seed_state - set seed for prandom_u32_state().
43 * @state: pointer to state structure to receive the seed. 50 * @state: pointer to state structure to receive the seed.
44 * @seed: arbitrary 64-bit value to use as a seed. 51 * @seed: arbitrary 64-bit value to use as a seed.
45 */ 52 */
46static inline void prandom32_seed(struct rnd_state *state, u64 seed) 53static inline void prandom_seed_state(struct rnd_state *state, u64 seed)
47{ 54{
48 u32 i = (seed >> 32) ^ (seed << 10) ^ seed; 55 u32 i = (seed >> 32) ^ (seed << 10) ^ seed;
49 56