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