virtio: hide legacy features from modern guests
NOTIFY_ON_EMPTY, ANY_LAYOUT and BAD are only valid on the legacy interface. Hide them from modern guests. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
		
							parent
							
								
									b69b30532e
								
							
						
					
					
						commit
						5f456073aa
					
				| @ -1095,7 +1095,8 @@ static uint64_t virtio_pci_common_read(void *opaque, hwaddr addr, | ||||
|         break; | ||||
|     case VIRTIO_PCI_COMMON_DF: | ||||
|         if (proxy->dfselect <= 1) { | ||||
|             val = vdev->host_features >> (32 * proxy->dfselect); | ||||
|             val = (vdev->host_features & ~VIRTIO_LEGACY_FEATURES) >> | ||||
|                 (32 * proxy->dfselect); | ||||
|         } | ||||
|         break; | ||||
|     case VIRTIO_PCI_COMMON_GFSELECT: | ||||
|  | ||||
| @ -25,6 +25,10 @@ | ||||
| /* A guest should never accept this.  It implies negotiation is broken. */ | ||||
| #define VIRTIO_F_BAD_FEATURE		30 | ||||
| 
 | ||||
| #define VIRTIO_LEGACY_FEATURES ((0x1ULL << VIRTIO_F_BAD_FEATURE) | \ | ||||
|                                 (0x1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | \ | ||||
|                                 (0x1ULL << VIRTIO_F_ANY_LAYOUT)) | ||||
| 
 | ||||
| struct VirtQueue; | ||||
| 
 | ||||
| static inline hwaddr vring_align(hwaddr addr, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Michael S. Tsirkin
						Michael S. Tsirkin