virtio: make VIRTIO_F_VERSION_1 a transport bit
Activate VIRTIO_F_VERSION_1 automatically unless legacy_only is set. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
df1b57fe59
commit
747ae34a6e
3 changed files with 9 additions and 3 deletions
|
@ -197,7 +197,11 @@ static int virtio_dev_probe(struct device *_d)
|
|||
driver_features_legacy = driver_features;
|
||||
}
|
||||
|
||||
if (driver_features & device_features & (1ULL << VIRTIO_F_VERSION_1))
|
||||
/* Detect legacy-only drivers and disable VIRTIO_F_VERSION_1. */
|
||||
if (drv->legacy_only)
|
||||
device_features &= ~(1ULL << VIRTIO_F_VERSION_1);
|
||||
|
||||
if (device_features & (1ULL << VIRTIO_F_VERSION_1))
|
||||
dev->features = driver_features & device_features;
|
||||
else
|
||||
dev->features = driver_features_legacy & device_features;
|
||||
|
|
|
@ -780,6 +780,8 @@ void vring_transport_features(struct virtio_device *vdev)
|
|||
break;
|
||||
case VIRTIO_RING_F_EVENT_IDX:
|
||||
break;
|
||||
case VIRTIO_F_VERSION_1:
|
||||
break;
|
||||
default:
|
||||
/* We don't understand this bit. */
|
||||
__virtio_clear_bit(vdev, i);
|
||||
|
|
|
@ -43,11 +43,11 @@
|
|||
/* We've given up on this device. */
|
||||
#define VIRTIO_CONFIG_S_FAILED 0x80
|
||||
|
||||
/* Some virtio feature bits (currently bits 28 through 31) are reserved for the
|
||||
/* Some virtio feature bits (currently bits 28 through 32) are reserved for the
|
||||
* transport being used (eg. virtio_ring), the rest are per-device feature
|
||||
* bits. */
|
||||
#define VIRTIO_TRANSPORT_F_START 28
|
||||
#define VIRTIO_TRANSPORT_F_END 32
|
||||
#define VIRTIO_TRANSPORT_F_END 33
|
||||
|
||||
/* Do we get callbacks when the ring is completely used, even if we've
|
||||
* suppressed them? */
|
||||
|
|
Loading…
Reference in a new issue