From 0ef60afdcf85bae41a40bd9c8a6345a317cf7c65 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Imre=20Vad=C3=A1sz?= Date: Thu, 29 Oct 2015 23:01:37 +0100 Subject: [PATCH] if_vtnet: Add, and negotiate the VIRTIO_F_ANY_LAYOUT feature bit --- sys/dev/virtual/virtio/net/if_vtnet.c | 1 + sys/dev/virtual/virtio/virtio/virtio.c | 1 + sys/dev/virtual/virtio/virtio/virtio.h | 3 +++ 3 files changed, 5 insertions(+) diff --git a/sys/dev/virtual/virtio/net/if_vtnet.c b/sys/dev/virtual/virtio/net/if_vtnet.c index 31ca4f59c3..adefad74df 100644 --- a/sys/dev/virtual/virtio/net/if_vtnet.c +++ b/sys/dev/virtual/virtio/net/if_vtnet.c @@ -695,6 +695,7 @@ vtnet_negotiate_features(struct vtnet_softc *sc) features = VTNET_FEATURES & ~mask; features |= VIRTIO_F_NOTIFY_ON_EMPTY; + features |= VIRTIO_F_ANY_LAYOUT; sc->vtnet_features = virtio_negotiate_features(dev, features); if (virtio_with_feature(dev, VTNET_LRO_FEATURES) && diff --git a/sys/dev/virtual/virtio/virtio/virtio.c b/sys/dev/virtual/virtio/virtio/virtio.c index dd12251d97..939d57be33 100644 --- a/sys/dev/virtual/virtio/virtio/virtio.c +++ b/sys/dev/virtual/virtio/virtio/virtio.c @@ -65,6 +65,7 @@ static struct virtio_ident { /* Device independent features. */ static struct virtio_feature_desc virtio_common_feature_desc[] = { { VIRTIO_F_NOTIFY_ON_EMPTY, "NotifyOnEmpty" }, + { VIRTIO_F_ANY_LAYOUT, "AnyLayout" }, { VIRTIO_RING_F_INDIRECT_DESC, "RingIndirect" }, { VIRTIO_RING_F_EVENT_IDX, "EventIdx" }, { VIRTIO_F_BAD_FEATURE, "BadFeature" }, diff --git a/sys/dev/virtual/virtio/virtio/virtio.h b/sys/dev/virtual/virtio/virtio/virtio.h index 5d24aa4efa..05b3122584 100644 --- a/sys/dev/virtual/virtio/virtio/virtio.h +++ b/sys/dev/virtual/virtio/virtio/virtio.h @@ -59,6 +59,9 @@ struct vq_alloc_info; */ #define VIRTIO_F_NOTIFY_ON_EMPTY (1 << 24) +/* The device accepts arbitrary descriptor layouts */ +#define VIRTIO_F_ANY_LAYOUT (1 << 27) + /* * The guest should never negotiate this feature; it * is used to detect faulty drivers. -- 2.41.0