diff options
-rw-r--r-- | drivers/char/hw_random/via-rng.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/char/hw_random/via-rng.c b/drivers/char/hw_random/via-rng.c index 7f86666bb393..d0387a84eec1 100644 --- a/drivers/char/hw_random/via-rng.c +++ b/drivers/char/hw_random/via-rng.c | |||
@@ -24,6 +24,7 @@ | |||
24 | * warranty of any kind, whether express or implied. | 24 | * warranty of any kind, whether express or implied. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <crypto/padlock.h> | ||
27 | #include <linux/module.h> | 28 | #include <linux/module.h> |
28 | #include <linux/kernel.h> | 29 | #include <linux/kernel.h> |
29 | #include <linux/hw_random.h> | 30 | #include <linux/hw_random.h> |
@@ -34,7 +35,6 @@ | |||
34 | #include <asm/i387.h> | 35 | #include <asm/i387.h> |
35 | 36 | ||
36 | 37 | ||
37 | #define PFX KBUILD_MODNAME ": " | ||
38 | 38 | ||
39 | 39 | ||
40 | enum { | 40 | enum { |
@@ -89,8 +89,10 @@ static inline u32 xstore(u32 *addr, u32 edx_in) | |||
89 | 89 | ||
90 | static int via_rng_data_present(struct hwrng *rng, int wait) | 90 | static int via_rng_data_present(struct hwrng *rng, int wait) |
91 | { | 91 | { |
92 | char buf[16 + PADLOCK_ALIGNMENT - STACK_ALIGN] __attribute__ | ||
93 | ((aligned(STACK_ALIGN))); | ||
94 | u32 *via_rng_datum = (u32 *)PTR_ALIGN(&buf[0], PADLOCK_ALIGNMENT); | ||
92 | u32 bytes_out; | 95 | u32 bytes_out; |
93 | u32 *via_rng_datum = (u32 *)(&rng->priv); | ||
94 | int i; | 96 | int i; |
95 | 97 | ||
96 | /* We choose the recommended 1-byte-per-instruction RNG rate, | 98 | /* We choose the recommended 1-byte-per-instruction RNG rate, |
@@ -114,6 +116,7 @@ static int via_rng_data_present(struct hwrng *rng, int wait) | |||
114 | break; | 116 | break; |
115 | udelay(10); | 117 | udelay(10); |
116 | } | 118 | } |
119 | rng->priv = *via_rng_datum; | ||
117 | return bytes_out ? 1 : 0; | 120 | return bytes_out ? 1 : 0; |
118 | } | 121 | } |
119 | 122 | ||