diff options
| author | Eugenio Pérez <eperezma@redhat.com> | 2022-05-12 19:57:42 +0200 |
|---|---|---|
| committer | Michael S. Tsirkin <mst@redhat.com> | 2022-05-13 07:57:26 -0400 |
| commit | 495fe3a78749c39c0e772c4e1a55d6cb8a7e5292 (patch) | |
| tree | 6ef58d337e502c44d1d2c44b2450b913ebd6eaf3 /hw/virtio/vhost-shadow-virtqueue.h | |
| parent | aa69abe6e8b0f2dbc3022359a8947fa37bf988b9 (diff) | |
| download | focaccia-qemu-495fe3a78749c39c0e772c4e1a55d6cb8a7e5292.tar.gz focaccia-qemu-495fe3a78749c39c0e772c4e1a55d6cb8a7e5292.zip | |
vhost: Track descriptor chain in private at SVQ
The device could have access to modify them, and it definitely have access when we implement packed vq. Harden SVQ maintaining a private copy of the descriptor chain. Other fields like buffer addresses are already maintained sepparatedly. Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Message-Id: <20220512175747.142058-2-eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/virtio/vhost-shadow-virtqueue.h')
| -rw-r--r-- | hw/virtio/vhost-shadow-virtqueue.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/virtio/vhost-shadow-virtqueue.h b/hw/virtio/vhost-shadow-virtqueue.h index e5e24c536d..c132c994e9 100644 --- a/hw/virtio/vhost-shadow-virtqueue.h +++ b/hw/virtio/vhost-shadow-virtqueue.h @@ -53,6 +53,12 @@ typedef struct VhostShadowVirtqueue { /* Next VirtQueue element that guest made available */ VirtQueueElement *next_guest_avail_elem; + /* + * Backup next field for each descriptor so we can recover securely, not + * needing to trust the device access. + */ + uint16_t *desc_next; + /* Next head to expose to the device */ uint16_t shadow_avail_idx; |