virtio: VIRTIO_F_IOMMU_PLATFORM -> VIRTIO_F_ACCESS_PLATFORM

Rename the bit to match latest virtio spec.
Add a compat macro to avoid breaking existing userspace.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
This commit is contained in:
Michael S. Tsirkin 2020-06-24 18:24:33 -04:00
parent bcf876870b
commit 321bd21261
10 changed files with 18 additions and 14 deletions

View File

@ -385,7 +385,7 @@ static irqreturn_t vu_req_interrupt(int irq, void *data)
} }
break; break;
case VHOST_USER_SLAVE_IOTLB_MSG: case VHOST_USER_SLAVE_IOTLB_MSG:
/* not supported - VIRTIO_F_IOMMU_PLATFORM */ /* not supported - VIRTIO_F_ACCESS_PLATFORM */
case VHOST_USER_SLAVE_VRING_HOST_NOTIFIER_MSG: case VHOST_USER_SLAVE_VRING_HOST_NOTIFIER_MSG:
/* not supported - VHOST_USER_PROTOCOL_F_HOST_NOTIFIER */ /* not supported - VHOST_USER_PROTOCOL_F_HOST_NOTIFIER */
default: default:

View File

@ -29,7 +29,7 @@
(1ULL << VIRTIO_F_VERSION_1) | \ (1ULL << VIRTIO_F_VERSION_1) | \
(1ULL << VIRTIO_NET_F_STATUS) | \ (1ULL << VIRTIO_NET_F_STATUS) | \
(1ULL << VIRTIO_F_ORDER_PLATFORM) | \ (1ULL << VIRTIO_F_ORDER_PLATFORM) | \
(1ULL << VIRTIO_F_IOMMU_PLATFORM) | \ (1ULL << VIRTIO_F_ACCESS_PLATFORM) | \
(1ULL << VIRTIO_NET_F_MRG_RXBUF)) (1ULL << VIRTIO_NET_F_MRG_RXBUF))
/* Only one queue pair for now. */ /* Only one queue pair for now. */

View File

@ -55,7 +55,7 @@ struct vdpasim_virtqueue {
static u64 vdpasim_features = (1ULL << VIRTIO_F_ANY_LAYOUT) | static u64 vdpasim_features = (1ULL << VIRTIO_F_ANY_LAYOUT) |
(1ULL << VIRTIO_F_VERSION_1) | (1ULL << VIRTIO_F_VERSION_1) |
(1ULL << VIRTIO_F_IOMMU_PLATFORM); (1ULL << VIRTIO_F_ACCESS_PLATFORM);
/* State of each vdpasim device */ /* State of each vdpasim device */
struct vdpasim { struct vdpasim {
@ -450,7 +450,7 @@ static int vdpasim_set_features(struct vdpa_device *vdpa, u64 features)
struct vdpasim *vdpasim = vdpa_to_sim(vdpa); struct vdpasim *vdpasim = vdpa_to_sim(vdpa);
/* DMA mapping must be done by driver */ /* DMA mapping must be done by driver */
if (!(features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))) if (!(features & (1ULL << VIRTIO_F_ACCESS_PLATFORM)))
return -EINVAL; return -EINVAL;
vdpasim->features = features & vdpasim_features; vdpasim->features = features & vdpasim_features;

View File

@ -73,7 +73,7 @@ enum {
VHOST_NET_FEATURES = VHOST_FEATURES | VHOST_NET_FEATURES = VHOST_FEATURES |
(1ULL << VHOST_NET_F_VIRTIO_NET_HDR) | (1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |
(1ULL << VIRTIO_NET_F_MRG_RXBUF) | (1ULL << VIRTIO_NET_F_MRG_RXBUF) |
(1ULL << VIRTIO_F_IOMMU_PLATFORM) (1ULL << VIRTIO_F_ACCESS_PLATFORM)
}; };
enum { enum {
@ -1653,7 +1653,7 @@ static int vhost_net_set_features(struct vhost_net *n, u64 features)
!vhost_log_access_ok(&n->dev)) !vhost_log_access_ok(&n->dev))
goto out_unlock; goto out_unlock;
if ((features & (1ULL << VIRTIO_F_IOMMU_PLATFORM))) { if ((features & (1ULL << VIRTIO_F_ACCESS_PLATFORM))) {
if (vhost_init_device_iotlb(&n->dev, true)) if (vhost_init_device_iotlb(&n->dev, true))
goto out_unlock; goto out_unlock;
} }

View File

@ -31,7 +31,7 @@ enum {
(1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) |
(1ULL << VIRTIO_F_ANY_LAYOUT) | (1ULL << VIRTIO_F_ANY_LAYOUT) |
(1ULL << VIRTIO_F_VERSION_1) | (1ULL << VIRTIO_F_VERSION_1) |
(1ULL << VIRTIO_F_IOMMU_PLATFORM) | (1ULL << VIRTIO_F_ACCESS_PLATFORM) |
(1ULL << VIRTIO_F_RING_PACKED) | (1ULL << VIRTIO_F_RING_PACKED) |
(1ULL << VIRTIO_F_ORDER_PLATFORM) | (1ULL << VIRTIO_F_ORDER_PLATFORM) |
(1ULL << VIRTIO_RING_F_INDIRECT_DESC) | (1ULL << VIRTIO_RING_F_INDIRECT_DESC) |

View File

@ -1129,7 +1129,7 @@ static int virtballoon_validate(struct virtio_device *vdev)
else if (!virtio_has_feature(vdev, VIRTIO_BALLOON_F_PAGE_POISON)) else if (!virtio_has_feature(vdev, VIRTIO_BALLOON_F_PAGE_POISON))
__virtio_clear_bit(vdev, VIRTIO_BALLOON_F_REPORTING); __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_REPORTING);
__virtio_clear_bit(vdev, VIRTIO_F_IOMMU_PLATFORM); __virtio_clear_bit(vdev, VIRTIO_F_ACCESS_PLATFORM);
return 0; return 0;
} }

View File

@ -2225,7 +2225,7 @@ void vring_transport_features(struct virtio_device *vdev)
break; break;
case VIRTIO_F_VERSION_1: case VIRTIO_F_VERSION_1:
break; break;
case VIRTIO_F_IOMMU_PLATFORM: case VIRTIO_F_ACCESS_PLATFORM:
break; break;
case VIRTIO_F_RING_PACKED: case VIRTIO_F_RING_PACKED:
break; break;

View File

@ -171,7 +171,7 @@ static inline bool virtio_has_iommu_quirk(const struct virtio_device *vdev)
* Note the reverse polarity of the quirk feature (compared to most * Note the reverse polarity of the quirk feature (compared to most
* other features), this is for compatibility with legacy systems. * other features), this is for compatibility with legacy systems.
*/ */
return !virtio_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM); return !virtio_has_feature(vdev, VIRTIO_F_ACCESS_PLATFORM);
} }
static inline static inline

View File

@ -67,13 +67,17 @@
#define VIRTIO_F_VERSION_1 32 #define VIRTIO_F_VERSION_1 32
/* /*
* If clear - device has the IOMMU bypass quirk feature. * If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature.
* If set - use platform tools to detect the IOMMU. * If set - use platform DMA tools to access the memory.
* *
* Note the reverse polarity (compared to most other features), * Note the reverse polarity (compared to most other features),
* this is for compatibility with legacy systems. * this is for compatibility with legacy systems.
*/ */
#define VIRTIO_F_IOMMU_PLATFORM 33 #define VIRTIO_F_ACCESS_PLATFORM 33
#ifndef __KERNEL__
/* Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace) */
#define VIRTIO_F_IOMMU_PLATFORM VIRTIO_F_ACCESS_PLATFORM
#endif /* __KERNEL__ */
/* This feature indicates support for the packed virtqueue layout. */ /* This feature indicates support for the packed virtqueue layout. */
#define VIRTIO_F_RING_PACKED 34 #define VIRTIO_F_RING_PACKED 34

View File

@ -51,7 +51,7 @@ static inline bool virtio_has_iommu_quirk(const struct virtio_device *vdev)
* Note the reverse polarity of the quirk feature (compared to most * Note the reverse polarity of the quirk feature (compared to most
* other features), this is for compatibility with legacy systems. * other features), this is for compatibility with legacy systems.
*/ */
return !virtio_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM); return !virtio_has_feature(vdev, VIRTIO_F_ACCESS_PLATFORM);
} }
static inline bool virtio_is_little_endian(struct virtio_device *vdev) static inline bool virtio_is_little_endian(struct virtio_device *vdev)