diff options
author | Eric Biggers <ebiggers3@gmail.com> | 2016-05-04 21:08:39 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2016-06-13 11:54:34 -0400 |
commit | b1132deac01c2332d234fa821a70022796b79182 (patch) | |
tree | 1607891ca52caca524fd1052fe6ab9c2418c5af8 /drivers/char | |
parent | 4b44f2d18a330565227a7348844493c59366171e (diff) |
random: properly align get_random_int_hash
get_random_long() reads from the get_random_int_hash array using an
unsigned long pointer. For this code to be guaranteed correct on all
architectures, the array must be aligned to an unsigned long boundary.
Cc: stable@kernel.org
Signed-off-by: Eric Biggers <ebiggers3@gmail.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/random.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c index 68f18d47717d..a6253e89663c 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c | |||
@@ -1778,13 +1778,15 @@ int random_int_secret_init(void) | |||
1778 | return 0; | 1778 | return 0; |
1779 | } | 1779 | } |
1780 | 1780 | ||
1781 | static DEFINE_PER_CPU(__u32 [MD5_DIGEST_WORDS], get_random_int_hash) | ||
1782 | __aligned(sizeof(unsigned long)); | ||
1783 | |||
1781 | /* | 1784 | /* |
1782 | * Get a random word for internal kernel use only. Similar to urandom but | 1785 | * Get a random word for internal kernel use only. Similar to urandom but |
1783 | * with the goal of minimal entropy pool depletion. As a result, the random | 1786 | * with the goal of minimal entropy pool depletion. As a result, the random |
1784 | * value is not cryptographically secure but for several uses the cost of | 1787 | * value is not cryptographically secure but for several uses the cost of |
1785 | * depleting entropy is too high | 1788 | * depleting entropy is too high |
1786 | */ | 1789 | */ |
1787 | static DEFINE_PER_CPU(__u32 [MD5_DIGEST_WORDS], get_random_int_hash); | ||
1788 | unsigned int get_random_int(void) | 1790 | unsigned int get_random_int(void) |
1789 | { | 1791 | { |
1790 | __u32 *hash; | 1792 | __u32 *hash; |