Date: Mon, 11 May 2015 21:24:10 +0000 (UTC) From: Peter Grehan <grehan@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r282784 - head/usr.sbin/bhyve Message-ID: <201505112124.t4BLOAC9093940@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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, "
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505112124.t4BLOAC9093940>