summaryrefslogtreecommitdiff
path: root/drivers/virtio/virtio.c
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2014-12-01 16:52:40 +0300
committerMichael S. Tsirkin <mst@redhat.com>2014-12-09 13:06:32 +0300
commit747ae34a6ef681fbd993be214d8c0a30bd4a2fda (patch)
tree3905b0413ec10b96e9a62af9d19acc682c8390dc /drivers/virtio/virtio.c
parentdf1b57fe59bc5b1486fe142e6ee76c493c52c543 (diff)
downloadlinux-747ae34a6ef681fbd993be214d8c0a30bd4a2fda.tar.xz
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/virtio.c')
-rw-r--r--drivers/virtio/virtio.c6
1 files changed, 5 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)
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;