qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 03/15] rng random backend: check for -EAGAIN errors


From: Michael Roth
Subject: [Qemu-devel] [PATCH 03/15] rng random backend: check for -EAGAIN errors on read
Date: Tue, 14 May 2013 16:53:00 -0500

From: Amit Shah <address@hidden>

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 <address@hidden>
Signed-off-by: Amit Shah <address@hidden>
Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>
(cherry picked from commit acbbc036619092fcd2c882222e1be168bd972b3e)

Signed-off-by: Michael Roth <address@hidden>
---
 backends/rng-random.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/backends/rng-random.c b/backends/rng-random.c
index 0d11088..813388b 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.7.9.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]