[PATCH v3 00/12] virtio: Harden and test vring
Andrew Scull
ascull at google.com
Mon May 16 12:41:28 CEST 2022
Make the virtio ring code resilient against corruption of the buffers
shared with the device.
It follows the example of Linux by keeping a private copy of the
descriptors and metadata for state tracking and only ever writing to the
descriptors that are shared with the device. I was able to test these
hardening steps in the sandbox by simulating device writes to the
queues.
>From v1:
- Fix build errors on SPL by making dependency on virtio drivers
explicit
>From v2:
- Refactor vring init loop per review
Andrew Scull (12):
virtio_ring: Merge identical variables
virtio_ring: Add helper to attach vring descriptor
virtio_ring: Maintain a shadow copy of descriptors
virtio_ring: Check used descriptors are chain heads
dm: test: virtio: Test the virtio ring
virtio: sandbox: Fix device features bitfield
test: dm: virtio: Test notify before del_vqs
test: dm: virtio: Split out virtio device tests
virtio: sandbox: Bind RNG rather than block device
test: dm: virtio: Test virtio device driver probing
virtio: rng: Check length before copying
test: dm: virtio_rng: Test virtio-rng with faked device
drivers/virtio/virtio_ring.c | 96 ++++++++++------
drivers/virtio/virtio_rng.c | 3 +
drivers/virtio/virtio_sandbox.c | 4 +-
include/virtio_ring.h | 12 ++
test/dm/Makefile | 6 +-
test/dm/virtio.c | 99 ----------------
test/dm/virtio_device.c | 195 ++++++++++++++++++++++++++++++++
test/dm/virtio_rng.c | 52 +++++++++
8 files changed, 330 insertions(+), 137 deletions(-)
create mode 100644 test/dm/virtio_device.c
create mode 100644 test/dm/virtio_rng.c
--
2.36.0.550.gb090851708-goog
More information about the U-Boot
mailing list