The vsock callbacks .vhost_vsock_set_guest_cid and
.vhost_vsock_set_running are the only ones to be conditional
on #ifdef CONFIG_VHOST_VSOCK. This is different from any other
device-dependent callbacks like .vhost_scsi_set_endpoint, and it
also broke when CONFIG_VHOST_VSOCK was changed to a per-target
symbol.
It would be possible to also use the CONFIG_DEVICES include, but
really there is no reason for most virtio files to be per-target
so just remove the #ifdef to fix the issue.
Reported-by: Dov Murik <dovmurik@linux.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
hw/virtio/vhost-backend.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c
index e409a865ae..4de8b6b3b0 100644
--- a/hw/virtio/vhost-backend.c
+++ b/hw/virtio/vhost-backend.c
@@ -203,7 +203,6 @@ static int vhost_kernel_get_vq_index(struct vhost_dev *dev, int idx)
return idx - dev->vq_index;
}
-#ifdef CONFIG_VHOST_VSOCK
static int vhost_kernel_vsock_set_guest_cid(struct vhost_dev *dev,
uint64_t guest_cid)
{
@@ -214,7 +213,6 @@ static int vhost_kernel_vsock_set_running(struct vhost_dev *dev, int start)
{
return vhost_kernel_call(dev, VHOST_VSOCK_SET_RUNNING, &start);
}
-#endif /* CONFIG_VHOST_VSOCK */
static void vhost_kernel_iotlb_read(void *opaque)
{
@@ -319,10 +317,8 @@ const VhostOps kernel_ops = {
.vhost_set_owner = vhost_kernel_set_owner,
.vhost_reset_device = vhost_kernel_reset_device,
.vhost_get_vq_index = vhost_kernel_get_vq_index,
-#ifdef CONFIG_VHOST_VSOCK
.vhost_vsock_set_guest_cid = vhost_kernel_vsock_set_guest_cid,
.vhost_vsock_set_running = vhost_kernel_vsock_set_running,
-#endif /* CONFIG_VHOST_VSOCK */
.vhost_set_iotlb_callback = vhost_kernel_set_iotlb_callback,
.vhost_send_device_iotlb_msg = vhost_kernel_send_device_iotlb_msg,
};
--
2.36.0
On Wed, May 11, 2022 at 09:43:28AM +0200, Paolo Bonzini wrote: >The vsock callbacks .vhost_vsock_set_guest_cid and >.vhost_vsock_set_running are the only ones to be conditional >on #ifdef CONFIG_VHOST_VSOCK. This is different from any other >device-dependent callbacks like .vhost_scsi_set_endpoint, and it >also broke when CONFIG_VHOST_VSOCK was changed to a per-target >symbol. > >It would be possible to also use the CONFIG_DEVICES include, but >really there is no reason for most virtio files to be per-target >so just remove the #ifdef to fix the issue. > I'm i doubt whether or not to add the following Fixes tag, since that commit only highlighted the problem: Fixes: 9972ae314f ("build: move vhost-vsock configuration to Kconfig") >Reported-by: Dov Murik <dovmurik@linux.ibm.com> >Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >--- > hw/virtio/vhost-backend.c | 4 ---- > 1 file changed, 4 deletions(-) Anyway, the path LGTM: Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Thanks, Stefano > >diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c >index e409a865ae..4de8b6b3b0 100644 >--- a/hw/virtio/vhost-backend.c >+++ b/hw/virtio/vhost-backend.c >@@ -203,7 +203,6 @@ static int vhost_kernel_get_vq_index(struct vhost_dev *dev, int idx) > return idx - dev->vq_index; > } > >-#ifdef CONFIG_VHOST_VSOCK > static int vhost_kernel_vsock_set_guest_cid(struct vhost_dev *dev, > uint64_t guest_cid) > { >@@ -214,7 +213,6 @@ static int vhost_kernel_vsock_set_running(struct vhost_dev *dev, int start) > { > return vhost_kernel_call(dev, VHOST_VSOCK_SET_RUNNING, &start); > } >-#endif /* CONFIG_VHOST_VSOCK */ > > static void vhost_kernel_iotlb_read(void *opaque) > { >@@ -319,10 +317,8 @@ const VhostOps kernel_ops = { > .vhost_set_owner = vhost_kernel_set_owner, > .vhost_reset_device = vhost_kernel_reset_device, > .vhost_get_vq_index = vhost_kernel_get_vq_index, >-#ifdef CONFIG_VHOST_VSOCK > .vhost_vsock_set_guest_cid = vhost_kernel_vsock_set_guest_cid, > .vhost_vsock_set_running = vhost_kernel_vsock_set_running, >-#endif /* CONFIG_VHOST_VSOCK */ > .vhost_set_iotlb_callback = vhost_kernel_set_iotlb_callback, > .vhost_send_device_iotlb_msg = vhost_kernel_send_device_iotlb_msg, > }; >-- >2.36.0 > >
© 2016 - 2024 Red Hat, Inc.