From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48072) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UcNC3-0006n5-3C for qemu-devel@nongnu.org; Tue, 14 May 2013 17:55:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UcNC1-0003pi-Td for qemu-devel@nongnu.org; Tue, 14 May 2013 17:55:35 -0400 Sender: fluxion From: Michael Roth Date: Tue, 14 May 2013 16:53:00 -0500 Message-Id: <1368568392-2127-4-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1368568392-2127-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1368568392-2127-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH 03/15] rng random backend: check for -EAGAIN errors on read List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, qemu-stable@nongnu.org From: Amit Shah 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 Signed-off-by: Amit Shah Message-id: eacda84dfaf2d99cf6d250b678be4e4d6c2088fb.1366108096.git.amit.shah@redhat.com Signed-off-by: Anthony Liguori (cherry picked from commit acbbc036619092fcd2c882222e1be168bd972b3e) Signed-off-by: Michael Roth --- 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