diff options
author | bryanv <bryanv@FreeBSD.org> | 2015-01-01 02:06:00 +0000 |
---|---|---|
committer | bryanv <bryanv@FreeBSD.org> | 2015-01-01 02:06:00 +0000 |
commit | 22d857390ce169f705038d92966a34095c7ec008 (patch) | |
tree | 3e5a69ebd5e8b9ae5581f61f1804e300fc543821 /sys/dev/virtio | |
parent | 76a626e11cb3a99059f4a6ad33ddcdb4d49e07de (diff) | |
download | FreeBSD-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.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 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; |