Am 17.03.2017 um 13:30 schrieb Sascha Hauer: > On Thu, Mar 16, 2017 at 06:31:45AM +0100, Oleksij Rempel wrote: >> From: Steffen Trumtrar >> >> Instead of generating pseudo random numbers, get random bytes >> from an optional HW generator, if enabled and registered. >> >> Signed-off-by: Steffen Trumtrar >> Signed-off-by: Oleksij Rempel >> --- >> lib/random.c | 19 +++++++++++++++++++ >> 1 file changed, 19 insertions(+) >> >> diff --git a/lib/random.c b/lib/random.c >> index 210fea994..42c0f83b7 100644 >> --- a/lib/random.c >> +++ b/lib/random.c >> @@ -1,5 +1,6 @@ >> #include >> #include >> +#include >> >> static unsigned int random_seed; >> >> @@ -22,6 +23,24 @@ void get_random_bytes(void *_buf, int len) >> { >> char *buf = _buf; >> >> + if (IS_ENABLED(CONFIG_HWRNG)) { >> + struct hwrng *rng; >> + int bytes; >> + >> + rng = hwrng_get_first(); >> + if (!IS_ERR(rng)) { >> + while (len) { >> + bytes = hwrng_get_data(rng, _buf, len, 1); >> + if (!bytes) >> + goto sw_fallback; > > hwrng_get_data() looks like it could return a negative error code. hm.. good point. -- Regards, Oleksij