summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Freudenberger <freude@linux.vnet.ibm.com>2015-05-04 13:27:49 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-05-13 09:57:38 +0200
commitc431761dddff87039edb3300b9b29d1f9e0af2c9 (patch)
tree5e295f98543fc9b954971d48940bb6fd7dcda99d
parentf60b8d449d850ae4aa3ee4fdaefec6b7882c92f7 (diff)
downloadop-kernel-dev-c431761dddff87039edb3300b9b29d1f9e0af2c9.zip
op-kernel-dev-c431761dddff87039edb3300b9b29d1f9e0af2c9.tar.gz
s390/crypto: fix stckf loop
The store-clock-fast loop in generate_entropy() mixes (exors) only the first 64 bytes of the initial page before doing the first SHA256. Fix the loop to mix the store-clock-fast values all over the page. Signed-off-by: Harald Freudenberger <freude@linux.vnet.ibm.com> Reported-by: David Binderman <dcb314@hotmail.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/crypto/prng.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/crypto/prng.c b/arch/s390/crypto/prng.c
index 1f374b3..9d5192c 100644
--- a/arch/s390/crypto/prng.c
+++ b/arch/s390/crypto/prng.c
@@ -125,7 +125,7 @@ static int generate_entropy(u8 *ebuf, size_t nbytes)
/* fill page with urandom bytes */
get_random_bytes(pg, PAGE_SIZE);
/* exor page with stckf values */
- for (n = 0; n < sizeof(PAGE_SIZE/sizeof(u64)); n++) {
+ for (n = 0; n < PAGE_SIZE / sizeof(u64); n++) {
u64 *p = ((u64 *)pg) + n;
*p ^= get_tod_clock_fast();
}
OpenPOWER on IntegriCloud