linux/drivers/char/hw_random
Laurent Vivier bf3175bc50 hwrng: virtio - add an internal buffer
hwrng core uses two buffers that can be mixed in the
virtio-rng queue.

If the buffer is provided with wait=0 it is enqueued in the
virtio-rng queue but unused by the caller.
On the next call, core provides another buffer but the
first one is filled instead and the new one queued.
And the caller reads the data from the new one that is not
updated, and the data in the first one are lost.

To avoid this mix, virtio-rng needs to use its own unique
internal buffer at a cost of a data copy to the caller buffer.

Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Link: https://lore.kernel.org/r/20211028101111.128049-2-lvivier@redhat.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2021-11-01 05:26:47 -04:00
..
amd-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
arm_smccc_trng.c hwrng: Add Arm SMCCC TRNG based driver 2021-08-06 19:45:26 +08:00
atmel-rng.c
ba431-rng.c hwrng: ba431 - use devm_platform_ioremap_resource() to simplify 2021-03-19 21:59:46 +11:00
bcm2835-rng.c hwrng: bcm2835 - add reset support 2021-03-13 00:04:06 +11:00
cavium-rng-vf.c
cavium-rng.c
cctrng.c hwrng: cctrng - delete redundant printing of return value 2021-03-19 21:59:47 +11:00
cctrng.h hwrng: cctrng - introduce Arm CryptoCell driver 2020-04-16 16:49:20 +10:00
core.c hwrng: core - Use DEVICE_ATTR_<RW|RO> macro 2021-05-28 15:11:45 +08:00
exynos-trng.c hwrng: exynos - Use pm_runtime_resume_and_get() to replace open coding 2021-06-03 20:24:04 +08:00
geode-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
hisi-rng.c hwrng: hisi - Fix W=1 unused variable warning 2020-07-09 18:25:12 +10:00
imx-rngc.c hwrng: imx-rngc - irq already prints an error 2020-11-06 14:31:15 +11:00
ingenic-rng.c crypto: ingenic - Drop kfree for memory allocated with devm_kzalloc 2020-08-21 14:43:51 +10:00
ingenic-trng.c hwrng: ingenic - Fix a resource leak in an error handling path 2021-01-03 08:41:37 +11:00
intel-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
iproc-rng200.c hwrng: iproc-rng200 - Move enable/disable in separate function 2021-01-03 08:41:37 +11:00
ixp4xx-rng.c hw_random: ixp4xx: Add OF support 2021-06-17 15:31:05 +02:00
Kconfig hwrng: Add Arm SMCCC TRNG based driver 2021-08-06 19:45:26 +08:00
ks-sa-rng.c hwrng: ks-sa - Use pm_runtime_resume_and_get() to replace open coding 2021-06-03 20:24:04 +08:00
Makefile hwrng: Add Arm SMCCC TRNG based driver 2021-08-06 19:45:26 +08:00
meson-rng.c
mtk-rng.c
mxc-rnga.c hwrng: mxc-rnga - use semicolons rather than commas to separate statements 2020-10-02 18:02:15 +10:00
n2-asm.S
n2-drv.c
n2rng.h
nomadik-rng.c amba: Make the remove callback return void 2021-02-02 14:25:50 +01:00
npcm-rng.c hwrng: npcm - modify readl to readb 2020-10-02 18:02:13 +10:00
octeon-rng.c hwrng: octeon - Fix sparse warnings 2020-07-09 18:25:14 +10:00
omap3-rom-rng.c
omap-rng.c hwrng: omap - Use pm_runtime_resume_and_get() to replace open coding 2021-06-03 20:24:04 +08:00
optee-rng.c hwrng: optee - Use device-managed registration API 2021-02-10 17:55:58 +11:00
pasemi-rng.c
pic32-rng.c hwrng: pic32 - Use device-managed registration API 2021-03-13 00:04:00 +11:00
powernv-rng.c
pseries-rng.c char: hw_random: pseries-rng: Demote non-conformant kernel-doc header 2021-05-21 10:09:30 +02:00
s390-trng.c s390/trng: set quality to 1024 2020-11-09 11:21:00 +01:00
st-rng.c hwrng: st - Fix W=1 unused variable warning 2020-07-09 18:25:12 +10:00
stm32-rng.c hwrng: stm32 - use semicolons rather than commas to separate statements 2020-10-02 18:02:14 +10:00
timeriomem-rng.c hwrng: timeriomem - Use device-managed registration API 2021-02-10 17:56:01 +11:00
tx4939-rng.c
via-rng.c hwrng: rename 'mod_init' & 'mod_exit' functions to be module-specific 2021-07-16 15:49:36 +08:00
virtio-rng.c hwrng: virtio - add an internal buffer 2021-11-01 05:26:47 -04:00
xgene-rng.c hwrng: xgene - Delete an error message in xgene_rng_probe() 2020-04-16 16:49:22 +10:00
xiphera-trng.c hwrng: xiphera-trng - use devm_platform_ioremap_resource() to simplify 2021-03-07 15:13:14 +11:00