[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v2 3/3] libvhost-user: fence legacy virtio devices
From: |
Marc Hartmayer |
Subject: |
[RFC v2 3/3] libvhost-user: fence legacy virtio devices |
Date: |
Fri, 17 Jul 2020 11:29:29 +0200 |
libvhost-user has no support for legacy virtio devices therefore
let's fence them.
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
---
contrib/libvhost-user/libvhost-access.h | 10 ++++++++++
contrib/libvhost-user/libvhost-user.c | 6 ++++++
2 files changed, 16 insertions(+)
diff --git a/contrib/libvhost-user/libvhost-access.h
b/contrib/libvhost-user/libvhost-access.h
index 868ba3e7bfb8..aa505ea1ec02 100644
--- a/contrib/libvhost-user/libvhost-access.h
+++ b/contrib/libvhost-user/libvhost-access.h
@@ -1,11 +1,21 @@
#ifndef LIBVHOST_ACCESS_H
+#include <assert.h>
+
#include "qemu/bswap.h"
#include "libvhost-user.h"
+static inline bool vu_has_feature(VuDev *dev, unsigned int fbit);
+
static inline bool vu_access_is_big_endian(VuDev *dev)
{
+ /*
+ * TODO: can probably be removed as the fencing is already done in
+ * `vu_set_features_exec`
+ */
+ assert(vu_has_feature(dev, VIRTIO_F_VERSION_1));
+
/* Devices conforming to VIRTIO 1.0 or later are always LE. */
return false;
}
diff --git a/contrib/libvhost-user/libvhost-user.c
b/contrib/libvhost-user/libvhost-user.c
index 0214b04c5291..93c4503b1f53 100644
--- a/contrib/libvhost-user/libvhost-user.c
+++ b/contrib/libvhost-user/libvhost-user.c
@@ -540,6 +540,12 @@ vu_set_features_exec(VuDev *dev, VhostUserMsg *vmsg)
DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64);
dev->features = vmsg->payload.u64;
+ if (!vu_has_feature(dev, VIRTIO_F_VERSION_1)) {
+ /* We only support devices conforming to VIRTIO 1.0 or
+ * later */
+ vu_panic(dev, "virtio legacy devices aren't supported by
libvhost-user");
+ return false;
+ }
if (!(dev->features & VHOST_USER_F_PROTOCOL_FEATURES)) {
vu_set_enable_all_rings(dev, true);
--
2.25.4
- Re: [RFC v2 1/3] virtio: add vhost-user-fs-ccw device, (continued)
- [RFC v2 2/3] libvhost-user: handle endianness as mandated by the spec, Marc Hartmayer, 2020/07/17
- Re: [RFC v2 2/3] libvhost-user: handle endianness as mandated by the spec, Stefan Hajnoczi, 2020/07/21
- Re: [RFC v2 2/3] libvhost-user: handle endianness as mandated by the spec, Michael S. Tsirkin, 2020/07/21
- Re: [RFC v2 2/3] libvhost-user: handle endianness as mandated by the spec, Marc Hartmayer, 2020/07/28
- Re: [RFC v2 2/3] libvhost-user: handle endianness as mandated by the spec, Michael S. Tsirkin, 2020/07/29
- Re: [RFC v2 2/3] libvhost-user: handle endianness as mandated by the spec, Marc Hartmayer, 2020/07/29
[RFC v2 3/3] libvhost-user: fence legacy virtio devices,
Marc Hartmayer <=
Re: [RFC v2 0/3] Enable virtio-fs on s390x, no-reply, 2020/07/17
Re: [RFC v2 0/3] Enable virtio-fs on s390x, no-reply, 2020/07/17