svn commit: r282784 - head/usr.sbin/bhyve
Peter Grehan
grehan at FreeBSD.org
Mon May 11 21:24:11 UTC 2015
Author: grehan
Date: Mon May 11 21:24:10 2015
New Revision: 282784
URL: https://svnweb.freebsd.org/changeset/base/282784
Log:
Handling indirect descriptors is a capability of the host and
not one that needs to be negotiated. Use the host capabilities
field and not the negotiated field when verifying that indirect
descriptors are supported.
Found with the Redhat Windows viostor driver, which clears
the indirect capability in the negotiated caps and then starts
using them.
Reported and tested by: Leon Dang (ldang at nahannisys.com)
MFC after: 2 weeks
Modified:
head/usr.sbin/bhyve/virtio.c
Modified: head/usr.sbin/bhyve/virtio.c
==============================================================================
--- head/usr.sbin/bhyve/virtio.c Mon May 11 20:58:05 2015 (r282783)
+++ head/usr.sbin/bhyve/virtio.c Mon May 11 21:24:10 2015 (r282784)
@@ -316,7 +316,7 @@ vq_getchain(struct vqueue_info *vq, uint
if ((vdir->vd_flags & VRING_DESC_F_INDIRECT) == 0) {
_vq_record(i, vdir, ctx, iov, n_iov, flags);
i++;
- } else if ((vs->vs_negotiated_caps &
+ } else if ((vs->vs_vc->vc_hv_caps &
VIRTIO_RING_F_INDIRECT_DESC) == 0) {
fprintf(stderr,
"%s: descriptor has forbidden INDIRECT flag, "
More information about the svn-src-all
mailing list