mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	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; | 		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; | 		dev->features = driver_features & device_features; | ||||||
| 	else | 	else | ||||||
| 		dev->features = driver_features_legacy & device_features; | 		dev->features = driver_features_legacy & device_features; | ||||||
|  |  | ||||||
|  | @ -780,6 +780,8 @@ void vring_transport_features(struct virtio_device *vdev) | ||||||
| 			break; | 			break; | ||||||
| 		case VIRTIO_RING_F_EVENT_IDX: | 		case VIRTIO_RING_F_EVENT_IDX: | ||||||
| 			break; | 			break; | ||||||
|  | 		case VIRTIO_F_VERSION_1: | ||||||
|  | 			break; | ||||||
| 		default: | 		default: | ||||||
| 			/* We don't understand this bit. */ | 			/* We don't understand this bit. */ | ||||||
| 			__virtio_clear_bit(vdev, i); | 			__virtio_clear_bit(vdev, i); | ||||||
|  |  | ||||||
|  | @ -43,11 +43,11 @@ | ||||||
| /* We've given up on this device. */ | /* We've given up on this device. */ | ||||||
| #define VIRTIO_CONFIG_S_FAILED		0x80 | #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 |  * transport being used (eg. virtio_ring), the rest are per-device feature | ||||||
|  * bits. */ |  * bits. */ | ||||||
| #define VIRTIO_TRANSPORT_F_START	28 | #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
 | /* Do we get callbacks when the ring is completely used, even if we've
 | ||||||
|  * suppressed them? */ |  * suppressed them? */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Michael S. Tsirkin
						Michael S. Tsirkin