Not handling EAGAIN triggers the assert qemu/backends/rng-random.c:44:entropy_available: assertion failed: (len != -1) Aborted (core dumped)
This happens when starting a guest with '-device virtio-rng-pci', issuing a 'cat /dev/hwrng' in the guest, while also doing 'cat /dev/random' on the host. Reported-by: yunpingzheng <yunzh...@redhat.com> Signed-off-by: Amit Shah <amit.s...@redhat.com> --- backends/rng-random.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/backends/rng-random.c b/backends/rng-random.c index d5761f2..830360c 100644 --- a/backends/rng-random.c +++ b/backends/rng-random.c @@ -41,6 +41,9 @@ static void entropy_available(void *opaque) ssize_t len; len = read(s->fd, buffer, s->size); + if (len < 0 && errno == EAGAIN) { + return; + } g_assert(len != -1); s->receive_func(s->opaque, buffer, len); -- 1.8.1.4