[RFC PATCH v1 12/17] hw/net/virtio-net: do not use vhost for a CoVE guest
Baolong Duan <[email protected]> Fri, 31 Jul 2026 11:50:06 +0800
| Newsgroups | org.nongnu.qemu-riscv,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
The in-kernel vhost datapath has no access to the memory of a TEE VM, so it cannot be used. Signed-off-by: Baolong Duan <[email protected]> --- hw/net/virtio-net.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 814b99a43d..4f8db1a1aa 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -28,6 +28,7 @@ #include "qemu/config-file.h" #include "qobject/qdict.h" #include "hw/virtio/virtio-net.h" +#include "hw/riscv/cove.h" #include "net/vhost_net.h" #include "net/announce.h" #include "hw/virtio/virtio-bus.h" @@ -326,6 +327,14 @@ static void virtio_net_vhost_status(VirtIONet *n, uint8_t status) } } + /* + * vhost cannot be used with a CoVE guest: the kernel datapath has no + * access to the memory of the TVM. + */ + if (riscv_cove_vm_active()) { + return; + } + n->vhost_started = 1; r = vhost_net_start(vdev, n->nic->ncs, queue_pairs, cvq); if (r < 0) { -- 2.34.1