aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Rosenfeld <rosenfeld@grumpf.hope-2000.org>2026-02-05 18:48:10 +0000
committerEd Maste <emaste@FreeBSD.org>2026-02-05 18:49:09 +0000
commit5379c4627782ebb2619f95a5784361c88472c8b5 (patch)
treecf3de7c6aa489d20e30b09a73f7ba229a7e5c57f
parentb773da180e02c0c27de48dbba72f3fb7a64656da (diff)
bhyve/virtio: check negotiated_caps for indirect descriptor support
vq_getchain() erroneously checked vc_hv_caps for indirect descriptor support when it encountered an indirect descriptor. vc_hv_caps is used in feature negotiation to advertise what features our device emulation supports, but we should really check what features we have negotiated with the driver. Reviewed by: corvink Differential Revision: https://reviews.freebsd.org/D53465
-rw-r--r--usr.sbin/bhyve/virtio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/usr.sbin/bhyve/virtio.c b/usr.sbin/bhyve/virtio.c
index 304156bf7416..a5ccbb9983a0 100644
--- a/usr.sbin/bhyve/virtio.c
+++ b/usr.sbin/bhyve/virtio.c
@@ -331,7 +331,7 @@ vq_getchain(struct vqueue_info *vq, struct iovec *iov, int niov,
if ((vdir->flags & VRING_DESC_F_INDIRECT) == 0) {
_vq_record(i, vdir, ctx, iov, niov, &req);
i++;
- } else if ((vs->vs_vc->vc_hv_caps &
+ } else if ((vs->vs_negotiated_caps &
VIRTIO_RING_F_INDIRECT_DESC) == 0) {
EPRINTLN(
"%s: descriptor has forbidden INDIRECT flag, "