[PATCH v2 00/12] virtio: Harden and test vring
Andrew Scull
ascull at google.com
Wed Apr 13 16:21:25 CEST 2022
Continuing the theme of making the virtio code resilient against
corruption of the buffers shared with the device, this series focusses
on the vring.
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
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 | 90 ++++++++++-----
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, 328 insertions(+), 133 deletions(-)
create mode 100644 test/dm/virtio_device.c
create mode 100644 test/dm/virtio_rng.c
--
2.35.1.1178.g4f1659d476-goog
More information about the U-Boot
mailing list