Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 747ae34a authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

virtio: make VIRTIO_F_VERSION_1 a transport bit



Activate VIRTIO_F_VERSION_1 automatically unless legacy_only
is set.

Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>


parent df1b57fe
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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);
+2 −2
Original line number Diff line number Diff line
@@ -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? */