On 03.10.2018 17:49, Maxime Coquelin wrote: > > > On 10/03/2018 03:26 PM, Ilya Maximets wrote: >> On 02.10.2018 12:36, Maxime Coquelin wrote: >>> VHOST_USER_GET_PROTOCOL_FEATURES, VHOST_USER_GET_VRING_BASE >>> and VHOST_USER_SET_LOG_BASE require replies, so their handlers >>> should return VH_RESULT_REPLY, not VH_RESULT_OK. >>> >>> Fixes: 2cfbbb86c62a ("vhost: unify message handling function signature") >>> >>> Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> >>> --- >>> lib/librte_vhost/vhost_user.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c >>> index 060b41893..ce0ac0098 100644 >>> --- a/lib/librte_vhost/vhost_user.c >>> +++ b/lib/librte_vhost/vhost_user.c >>> @@ -1161,7 +1161,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev, >>> msg->size = sizeof(msg->payload.state); >>> - return VH_RESULT_OK; >>> + return VH_RESULT_REPLY; >>> } >>> /* >>> @@ -1218,7 +1218,7 @@ vhost_user_get_protocol_features(struct virtio_net >>> **pdev, >>> msg->payload.u64 = protocol_features; >>> msg->size = sizeof(msg->payload.u64); >>> - return VH_RESULT_OK; >>> + return VH_RESULT_REPLY; >>> } >>> static int >>> @@ -1298,7 +1298,7 @@ vhost_user_set_log_base(struct virtio_net **pdev, >>> struct VhostUserMsg *msg) >>> msg->size = sizeof(msg->payload.u64); >> >> Maybe we need to set size to zero? This message should not have >> "Slave payload" according to docs and QEMU does not check it. > > I agree with the fix, but it's here since the beginning, not related to > this series. I will add it at the beginning of the series though.
OK. > > I think the spec could also be updated, to clarify what payload is > expected when VHOST_USER_PROTOCOL_F_LOG_SHMFD is negotiated. Yeah. There was an attempt few years ago, but it wasn't merged because of code changes, I guess: https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg03526.html > >> >>> - return VH_RESULT_OK; >>> + return VH_RESULT_REPLY; >>> } >>> static int vhost_user_set_log_fd(struct virtio_net **pdev __rte_unused, >>>