diff --git a/drivers/char/random.c b/drivers/char/random.c index 1cbc33ee5a5f..1c9cb58dcce7 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -977,7 +977,7 @@ static void mix_interrupt_randomness(struct work_struct *work) local_irq_enable(); mix_pool_bytes(pool, sizeof(pool)); - credit_init_bits(max(1u, (count & U16_MAX) / 64)); + credit_init_bits(clamp_t(unsigned int, (count & U16_MAX) / 64, 1, sizeof(pool) * 8)); memzero_explicit(pool, sizeof(pool)); }