mirror of https://gitee.com/openkylin/linux.git
virtio: fixes
A small fix for a uapi header, and a fix for VDPA for non-x86 guests. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> -----BEGIN PGP SIGNATURE----- iQEcBAABAgAGBQJcWfKsAAoJECgfDbjSjVRpz8AIALAFWg40sy8n1LjcDoTar9oP YRrKUD7ag4dL8I41kbu4Vk8GQG1cSKFxk+PnZ4lhyiJGUgcd267qoUf3Kk9MxL94 IvMxa/Y2qPiSpEIwJGDxikJNaqcSDTJXYgs6zjCLHgo35WUbmAxVh3iZDWkpaKKl mql+DsotNhEYE5BGAi8OhPIbGOtumkhCy6JySBD+trHyivKIotKaPN6PoNudPRQU ipP1YlTZQL2vYp3vwbwjaO4IKo/17IDQtzHxLQU2Q1ZORSPOctjffmF74qfDkNKl pqWYXwVbq8/EuKyhNexAqU3vkSQaLUEMthzi5d/Z7QYeJt/K5xcpgkKHYm1lZ/U= =XTXV -----END PGP SIGNATURE----- Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio fixes from Michael Tsirkin: "A small fix for a uapi header, and a fix for VDPA for non-x86 guests" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio: drop internal struct from UAPI virtio: support VIRTIO_F_ORDER_PLATFORM
This commit is contained in:
commit
b0314565da
|
@ -152,7 +152,12 @@ struct vring_virtqueue {
|
|||
/* Available for packed ring */
|
||||
struct {
|
||||
/* Actual memory layout for this queue. */
|
||||
struct vring_packed vring;
|
||||
struct {
|
||||
unsigned int num;
|
||||
struct vring_packed_desc *desc;
|
||||
struct vring_packed_desc_event *driver;
|
||||
struct vring_packed_desc_event *device;
|
||||
} vring;
|
||||
|
||||
/* Driver ring wrap counter. */
|
||||
bool avail_wrap_counter;
|
||||
|
@ -1609,6 +1614,9 @@ static struct virtqueue *vring_create_virtqueue_packed(
|
|||
!context;
|
||||
vq->event = virtio_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX);
|
||||
|
||||
if (virtio_has_feature(vdev, VIRTIO_F_ORDER_PLATFORM))
|
||||
vq->weak_barriers = false;
|
||||
|
||||
vq->packed.ring_dma_addr = ring_dma_addr;
|
||||
vq->packed.driver_event_dma_addr = driver_event_dma_addr;
|
||||
vq->packed.device_event_dma_addr = device_event_dma_addr;
|
||||
|
@ -2079,6 +2087,9 @@ struct virtqueue *__vring_new_virtqueue(unsigned int index,
|
|||
!context;
|
||||
vq->event = virtio_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX);
|
||||
|
||||
if (virtio_has_feature(vdev, VIRTIO_F_ORDER_PLATFORM))
|
||||
vq->weak_barriers = false;
|
||||
|
||||
vq->split.queue_dma_addr = 0;
|
||||
vq->split.queue_size_in_bytes = 0;
|
||||
|
||||
|
@ -2213,6 +2224,8 @@ void vring_transport_features(struct virtio_device *vdev)
|
|||
break;
|
||||
case VIRTIO_F_RING_PACKED:
|
||||
break;
|
||||
case VIRTIO_F_ORDER_PLATFORM:
|
||||
break;
|
||||
default:
|
||||
/* We don't understand this bit. */
|
||||
__virtio_clear_bit(vdev, i);
|
||||
|
|
|
@ -78,6 +78,12 @@
|
|||
/* This feature indicates support for the packed virtqueue layout. */
|
||||
#define VIRTIO_F_RING_PACKED 34
|
||||
|
||||
/*
|
||||
* This feature indicates that memory accesses by the driver and the
|
||||
* device are ordered in a way described by the platform.
|
||||
*/
|
||||
#define VIRTIO_F_ORDER_PLATFORM 36
|
||||
|
||||
/*
|
||||
* Does the device support Single Root I/O Virtualization?
|
||||
*/
|
||||
|
|
|
@ -213,14 +213,4 @@ struct vring_packed_desc {
|
|||
__le16 flags;
|
||||
};
|
||||
|
||||
struct vring_packed {
|
||||
unsigned int num;
|
||||
|
||||
struct vring_packed_desc *desc;
|
||||
|
||||
struct vring_packed_desc_event *driver;
|
||||
|
||||
struct vring_packed_desc_event *device;
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_VIRTIO_RING_H */
|
||||
|
|
Loading…
Reference in New Issue