aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/virtio
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2014-12-01 08:52:40 -0500
committerMichael S. Tsirkin <mst@redhat.com>2014-12-09 05:06:32 -0500
commit747ae34a6ef681fbd993be214d8c0a30bd4a2fda (patch)
tree3905b0413ec10b96e9a62af9d19acc682c8390dc /drivers/virtio
parentdf1b57fe59bc5b1486fe142e6ee76c493c52c543 (diff)
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>
Diffstat (limited to 'drivers/virtio')
-rw-r--r--drivers/virtio/virtio.c6
-rw-r--r--drivers/virtio/virtio_ring.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index f9ad99c8b352..fa6b75db5f1f 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -197,7 +197,11 @@ static int virtio_dev_probe(struct device *_d)
197 driver_features_legacy = driver_features; 197 driver_features_legacy = driver_features;
198 } 198 }
199 199
200 if (driver_features & device_features & (1ULL << VIRTIO_F_VERSION_1)) 200 /* Detect legacy-only drivers and disable VIRTIO_F_VERSION_1. */
201 if (drv->legacy_only)
202 device_features &= ~(1ULL << VIRTIO_F_VERSION_1);
203
204 if (device_features & (1ULL << VIRTIO_F_VERSION_1))
201 dev->features = driver_features & device_features; 205 dev->features = driver_features & device_features;
202 else 206 else
203 dev->features = driver_features_legacy & device_features; 207 dev->features = driver_features_legacy & device_features;
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c
index 55532a43ead3..00ec6b3f96b2 100644
--- a/drivers/virtio/virtio_ring.c
+++ b/drivers/virtio/virtio_ring.c
@@ -780,6 +780,8 @@ void vring_transport_features(struct virtio_device *vdev)
780 break; 780 break;
781 case VIRTIO_RING_F_EVENT_IDX: 781 case VIRTIO_RING_F_EVENT_IDX:
782 break; 782 break;
783 case VIRTIO_F_VERSION_1:
784 break;
783 default: 785 default:
784 /* We don't understand this bit. */ 786 /* We don't understand this bit. */
785 __virtio_clear_bit(vdev, i); 787 __virtio_clear_bit(vdev, i);