From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:33817) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US37n-0000PS-5q for qemu-devel@nongnu.org; Tue, 16 Apr 2013 06:28:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1US37i-0000am-GU for qemu-devel@nongnu.org; Tue, 16 Apr 2013 06:28:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42394) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US37i-0000ac-9S for qemu-devel@nongnu.org; Tue, 16 Apr 2013 06:28:26 -0400 From: Amit Shah Date: Tue, 16 Apr 2013 15:58:16 +0530 Message-Id: Subject: [Qemu-devel] [PATCH 1/1] rng random backend: check for -EAGAIN errors on read List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Amit Shah , qemu list 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 --- 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