]> git.proxmox.com Git - mirror_qemu.git/commit - backends/rng.c
rng: add request queue support to rng-random
authorLadi Prosek <lprosek@redhat.com>
Thu, 3 Mar 2016 08:37:18 +0000 (09:37 +0100)
committerAmit Shah <amit.shah@redhat.com>
Thu, 3 Mar 2016 12:12:26 +0000 (17:42 +0530)
commit60253ed1e6ec6d8e5ef2efe7bf755f475dce9956
tree6cf034176fb01e29274cf455b82cd6d68823d57a
parent9f14b0add1dcdbfa2ee61051d068211fb0a1fcc9
rng: add request queue support to rng-random

Requests are now created in the RngBackend parent class and the
code path is shared by both rng-egd and rng-random.

This commit fixes the rng-random implementation which processed
only one request at a time and simply discarded all but the most
recent one. In the guest this manifested as delayed completion
of reads from virtio-rng, i.e. a read was completed only after
another read was issued.

By switching rng-random to use the same request queue as rng-egd,
the unsafe stack-based allocation of the entropy buffer is
eliminated and replaced with g_malloc.

Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Reviewed-by: Amit Shah <amit.shah@redhat.com>
Message-Id: <1456994238-9585-5-git-send-email-lprosek@redhat.com>
Signed-off-by: Amit Shah <amit.shah@redhat.com>
backends/rng-egd.c
backends/rng-random.c
backends/rng.c
include/sysemu/rng.h