summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbryanv <bryanv@FreeBSD.org>2015-01-19 17:02:30 +0000
committerbryanv <bryanv@FreeBSD.org>2015-01-19 17:02:30 +0000
commitd8207c1298601d62853e6bc0956f489976c5f350 (patch)
tree739998fa17d3ce645708d0cb2f0e4d440e65ac1c
parent17a9a103427815c31d53e3c9a5af81a7a1fc1696 (diff)
downloadFreeBSD-src-d8207c1298601d62853e6bc0956f489976c5f350.zip
FreeBSD-src-d8207c1298601d62853e6bc0956f489976c5f350.tar.gz
MFC r276491:
Add softc flag for when the indirect descriptor feature was negotiated
-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 8519261..ea75f91 100644
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -597,6 +597,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;
@@ -3663,7 +3665,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