[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/1] rng random backend: check for -EAGAIN error
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH 1/1] rng random backend: check for -EAGAIN errors on read |
Date: |
Tue, 16 Apr 2013 15:51:30 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5 |
Am 16.04.2013 12:28, schrieb 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 <address@hidden>
> Signed-off-by: Amit Shah <address@hidden>
Doesn't this apply to stable, too, then?
Regards,
Andreas
> ---
> 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);
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg