diff --git a/drivers/char/random.c b/drivers/char/random.c index 11c23ca57430295d399a76b74cbcdbb9643d5b3c..ee0c0d18f1eb24c077f41f8a7bec431127b19bc3 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -709,7 +709,8 @@ static void credit_entropy_bits(struct entropy_store *r, int nbits) } /* should we wake readers? */ - if (entropy_bits >= random_read_wakeup_bits) { + if (entropy_bits >= random_read_wakeup_bits && + wq_has_sleeper(&random_read_wait)) { wake_up_interruptible(&random_read_wait); kill_fasync(&fasync, SIGIO, POLL_IN); }