vsock/vmci: convert VMCI error code to -ENOMEM on send

This adds conversion of VMCI specific error code to general -ENOMEM. It
is needed, because af_vsock.c passes error value returned from transport
to the user, which does not expect to get VMCI_ERROR_* values.

Fixes: c43170b7e1 ("vsock: return errors other than -ENOMEM to socket")
Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru>
Reviewed-by: Vishnu Dasa <vdasa@vmware.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Arseniy Krasnov 2023-03-31 10:56:41 +03:00 committed by David S. Miller
parent 362f0b6678
commit ffa5395a79
1 changed files with 7 additions and 1 deletions

View File

@ -1842,7 +1842,13 @@ static ssize_t vmci_transport_stream_enqueue(
struct msghdr *msg,
size_t len)
{
return vmci_qpair_enquev(vmci_trans(vsk)->qpair, msg, len, 0);
ssize_t err;
err = vmci_qpair_enquev(vmci_trans(vsk)->qpair, msg, len, 0);
if (err < 0)
err = -ENOMEM;
return err;
}
static s64 vmci_transport_stream_has_data(struct vsock_sock *vsk)