Re: [RFC PATCH v2 2/6] hv_sock: always return ENOMEM in case of error

From: Stefano Garzarella
Date: Thu Dec 01 2022 - 04:25:43 EST


On Fri, Nov 25, 2022 at 05:05:53PM +0000, Arseniy Krasnov wrote:
From: Bobby Eshleman <bobby.eshleman@xxxxxxxxxxxxx>

This saves original behaviour from af_vsock.c - switch any error
code returned from transport layer to ENOMEM.

Signed-off-by: Bobby Eshleman <bobby.eshleman@xxxxxxxxxxxxx>
Signed-off-by: Arseniy Krasnov <AVKrasnov@xxxxxxxxxxxxxx>
---
net/vmw_vsock/hyperv_transport.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/vmw_vsock/hyperv_transport.c b/net/vmw_vsock/hyperv_transport.c
index 59c3e2697069..fbbe55133da2 100644
--- a/net/vmw_vsock/hyperv_transport.c
+++ b/net/vmw_vsock/hyperv_transport.c
@@ -687,7 +687,7 @@ static ssize_t hvs_stream_enqueue(struct vsock_sock *vsk, struct msghdr *msg,
if (bytes_written)
ret = bytes_written;
kfree(send_buf);
- return ret;
+ return ret < 0 ? -ENOMEM : ret;

I'm not sure for hyperv we want to preserve -ENOMEM. This transport was added after virtio-vsock, so I think we can return the error directly.

@Dexuan what do you think?

Thanks,
Stefano