|
@@ -84,14 +84,14 @@ static size_t rng_buffer_size(void)
|
|
|
|
|
|
static void add_early_randomness(struct hwrng *rng)
|
|
|
{
|
|
|
- unsigned char bytes[16];
|
|
|
int bytes_read;
|
|
|
+ size_t size = min_t(size_t, 16, rng_buffer_size());
|
|
|
|
|
|
mutex_lock(&reading_mutex);
|
|
|
- bytes_read = rng_get_data(rng, bytes, sizeof(bytes), 1);
|
|
|
+ bytes_read = rng_get_data(rng, rng_buffer, size, 1);
|
|
|
mutex_unlock(&reading_mutex);
|
|
|
if (bytes_read > 0)
|
|
|
- add_device_randomness(bytes, bytes_read);
|
|
|
+ add_device_randomness(rng_buffer, bytes_read);
|
|
|
}
|
|
|
|
|
|
static inline void cleanup_rng(struct kref *kref)
|