Message ID | 20200714220019.10854-1-mwilck@suse.com |
---|---|
State | New |
Headers | show |
Series | virtio-rng: return available data with O_NONBLOCK | expand |
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c index 79a6e47b5fbc..94806308d814 100644 --- a/drivers/char/hw_random/virtio-rng.c +++ b/drivers/char/hw_random/virtio-rng.c @@ -59,6 +59,9 @@ static int virtio_read(struct hwrng *rng, void *buf, size_t size, bool wait) if (vi->hwrng_removed) return -ENODEV; + if (vi->data_avail >= size || (vi->data_avail && !wait)) + return vi->data_avail; + if (!vi->busy) { vi->busy = true; reinit_completion(&vi->have_data);