From: Andrew Scull <ascull@google.com>
To: u-boot@lists.denx.de
Cc: sjg@chromium.org, bmeng.cn@gmail.com, adelva@google.com,
keirf@google.com, ptosi@google.com,
Andrew Scull <ascull@google.com>
Subject: [PATCH 00/11] virtio: Harden and test vring
Date: Thu, 31 Mar 2022 10:09:38 +0000 [thread overview]
Message-ID: <20220331100949.3637425-1-ascull@google.com> (raw)
Continuing the theme of making the virtio code resilient against
corruption of the buffers shared with the device, this series focusses
on the vring. This series is simpler and more self-contained than the
series for virtio-pci!
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. I was also looking into testing the device
drivers against a simulated device but the lack of an API to access the
virtqueues meant this ended up being a hack. I've included that hack and
the at the end of the series as an RFC.
Andrew Scull (11):
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
virtio: sandbox: Bind RNG rather than block device
test: dm: virtio: Test virtio device driver probing
virtio: rng: Check length before copying
RFC: test: dm: virtio: 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/virtio.c | 129 ++++++++++++++++++++++++++++++--
5 files changed, 199 insertions(+), 39 deletions(-)
--
2.35.1.1094.g7c7d902a7c-goog
next reply other threads:[~2022-03-31 10:10 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-31 10:09 Andrew Scull [this message]
2022-03-31 10:09 ` [PATCH 01/11] virtio_ring: Merge identical variables Andrew Scull
2022-04-07 7:03 ` Heinrich Schuchardt
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 02/11] virtio_ring: Add helper to attach vring descriptor Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 03/11] virtio_ring: Maintain a shadow copy of descriptors Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 04/11] virtio_ring: Check used descriptors are chain heads Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 05/11] dm: test: virtio: Test the virtio ring Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 06/11] virtio: sandbox: Fix device features bitfield Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 07/11] test: dm: virtio: Test notify before del_vqs Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 08/11] virtio: sandbox: Bind RNG rather than block device Andrew Scull
2022-04-07 7:20 ` Heinrich Schuchardt
2022-04-07 10:16 ` Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 09/11] test: dm: virtio: Test virtio device driver probing Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 10/11] virtio: rng: Check length before copying Andrew Scull
2022-04-06 14:18 ` Pierre-Clément Tosi
2022-04-07 10:09 ` Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-03-31 10:09 ` [PATCH 11/11] RFC: test: dm: virtio: Test virtio-rng with faked device Andrew Scull
2022-04-11 18:35 ` Simon Glass
2022-04-12 10:33 ` Andrew Scull
2022-04-12 18:10 ` [PATCH 00/11] virtio: Harden and test vring Tom Rini
2022-04-12 22:49 ` Andrew Scull
2022-04-12 23:11 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220331100949.3637425-1-ascull@google.com \
--to=ascull@google.com \
--cc=adelva@google.com \
--cc=bmeng.cn@gmail.com \
--cc=keirf@google.com \
--cc=ptosi@google.com \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox