On Thu, Mar 30, 2023 at 10:07:36AM +0300, Arseniy Krasnov wrote:
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.

Signed-off-by: Arseniy Krasnov <[email protected]>
---
net/vmw_vsock/vmci_transport.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/net/vmw_vsock/vmci_transport.c b/net/vmw_vsock/vmci_transport.c
index 36eb16a40745..45de3e75597f 100644
--- a/net/vmw_vsock/vmci_transport.c
+++ b/net/vmw_vsock/vmci_transport.c
@@ -1831,10 +1831,17 @@ static ssize_t vmci_transport_stream_dequeue(
        size_t len,
        int flags)
{
+       int err;

Please, use the same type returned by the function.

+
        if (flags & MSG_PEEK)
-               return vmci_qpair_peekv(vmci_trans(vsk)->qpair, msg, len, 0);
+               err = vmci_qpair_peekv(vmci_trans(vsk)->qpair, msg, len, 0);
        else
-               return vmci_qpair_dequev(vmci_trans(vsk)->qpair, msg, len, 0);
+               err = vmci_qpair_dequev(vmci_trans(vsk)->qpair, msg, len, 0);
+
+       if (err < 0)
+               err = -ENOMEM;
+
+       return err;
}

static ssize_t vmci_transport_stream_enqueue(
@@ -1842,7 +1849,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);
+       int err;

Ditto.

+
+       err = vmci_qpair_enquev(vmci_trans(vsk)->qpair, msg, len, 0);
+       if (err < 0)
+               err = -ENOMEM;
+
+       return err;
}

@Vishnu: should we backport the change for
vmci_transport_stream_enqueue() to stable branches?

In this case I would split this patch and I would send the
vmci_transport_stream_enqueue() change to the net branch including:

Fixes: c43170b7e157 ("vsock: return errors other than -ENOMEM to socket")

Thanks,
Stefano

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to