diff options
author | bryanv <bryanv@FreeBSD.org> | 2015-01-19 17:02:30 +0000 |
---|---|---|
committer | bryanv <bryanv@FreeBSD.org> | 2015-01-19 17:02:30 +0000 |
commit | d8207c1298601d62853e6bc0956f489976c5f350 (patch) | |
tree | 739998fa17d3ce645708d0cb2f0e4d440e65ac1c | |
parent | 17a9a103427815c31d53e3c9a5af81a7a1fc1696 (diff) | |
download | FreeBSD-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.c | 4 | ||||
-rw-r--r-- | sys/dev/virtio/network/if_vtnetvar.h | 3 |
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; |