summaryrefslogtreecommitdiffstats
path: root/sys/dev/virtio
diff options
context:
space:
mode:
authorbryanv <bryanv@FreeBSD.org>2015-01-01 02:06:00 +0000
committerbryanv <bryanv@FreeBSD.org>2015-01-01 02:06:00 +0000
commit22d857390ce169f705038d92966a34095c7ec008 (patch)
tree3e5a69ebd5e8b9ae5581f61f1804e300fc543821 /sys/dev/virtio
parent76a626e11cb3a99059f4a6ad33ddcdb4d49e07de (diff)
downloadFreeBSD-src-22d857390ce169f705038d92966a34095c7ec008.zip
FreeBSD-src-22d857390ce169f705038d92966a34095c7ec008.tar.gz
Add softc flag for when the indirect descriptor feature was negotiated
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/virtio')
-rw-r--r--sys/dev/virtio/network/if_vtnet.c4
-rw-r--r--sys/dev/virtio/network/if_vtnetvar.h3
2 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c
index 4a82774..39fc28d 100644
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -599,6 +599,8 @@ vtnet_setup_features(struct vtnet_softc *sc)
vtnet_negotiate_features(sc);
+ if (virtio_with_feature(dev, VIRTIO_RING_F_INDIRECT_DESC))
+ sc->vtnet_flags |= VTNET_FLAG_INDIRECT;
if (virtio_with_feature(dev, VIRTIO_RING_F_EVENT_IDX))
sc->vtnet_flags |= VTNET_FLAG_EVENT_IDX;
@@ -3653,7 +3655,7 @@ vtnet_set_tx_intr_threshold(struct vtnet_softc *sc)
* Without indirect descriptors, leave enough room for the most
* segments we handle.
*/
- if (virtio_with_feature(dev, VIRTIO_RING_F_INDIRECT_DESC) == 0 &&
+ if ((sc->vtnet_flags & VTNET_FLAG_INDIRECT) == 0 &&
thresh < sc->vtnet_tx_nsegs)
thresh = sc->vtnet_tx_nsegs;
diff --git a/sys/dev/virtio/network/if_vtnetvar.h b/sys/dev/virtio/network/if_vtnetvar.h
index 7249a3e..f89f6b1 100644
--- a/sys/dev/virtio/network/if_vtnetvar.h
+++ b/sys/dev/virtio/network/if_vtnetvar.h
@@ -140,7 +140,8 @@ struct vtnet_softc {
#define VTNET_FLAG_MRG_RXBUFS 0x0080
#define VTNET_FLAG_LRO_NOMRG 0x0100
#define VTNET_FLAG_MULTIQ 0x0200
-#define VTNET_FLAG_EVENT_IDX 0x0400
+#define VTNET_FLAG_INDIRECT 0x0400
+#define VTNET_FLAG_EVENT_IDX 0x0800
int vtnet_link_active;
int vtnet_hdr_size;
OpenPOWER on IntegriCloud