* Re: [RFC PATCH v2 1/3] vsock: return errors other than -ENOMEM to socket
[not found] ` <b910764f-a193-e684-a762-f941883a0745@sberdevices.ru>
@ 2023-03-30 8:02 ` Stefano Garzarella
0 siblings, 0 replies; 3+ messages in thread
From: Stefano Garzarella @ 2023-03-30 8:02 UTC (permalink / raw)
To: Arseniy Krasnov
Cc: Vishnu Dasa, Bobby Eshleman, kvm, pv-drivers, netdev,
linux-kernel, virtualization, oxffffaa, Bryan Tan, Eric Dumazet,
Stefan Hajnoczi, kernel, Jakub Kicinski, Paolo Abeni,
David S. Miller
On Thu, Mar 30, 2023 at 10:05:45AM +0300, Arseniy Krasnov wrote:
>This removes behaviour, where error code returned from any transport
>was always switched to ENOMEM. This works in the same way as:
>commit
>c43170b7e157 ("vsock: return errors other than -ENOMEM to socket"),
>but for receive calls.
>
>Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru>
>---
> net/vmw_vsock/af_vsock.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
We should first make sure that all transports return the right value,
and then expose it to the user, so I would move this patch, after
patch 2.
Thanks,
Stefano
>
>diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
>index 5f2dda35c980..413407bb646c 100644
>--- a/net/vmw_vsock/af_vsock.c
>+++ b/net/vmw_vsock/af_vsock.c
>@@ -2043,7 +2043,7 @@ static int __vsock_stream_recvmsg(struct sock *sk, struct msghdr *msg,
>
> read = transport->stream_dequeue(vsk, msg, len - copied, flags);
> if (read < 0) {
>- err = -ENOMEM;
>+ err = read;
> break;
> }
>
>@@ -2094,7 +2094,7 @@ static int __vsock_seqpacket_recvmsg(struct sock *sk, struct msghdr *msg,
> msg_len = transport->seqpacket_dequeue(vsk, msg, flags);
>
> if (msg_len < 0) {
>- err = -ENOMEM;
>+ err = msg_len;
> goto out;
> }
>
>--
>2.25.1
>
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC PATCH v2 2/3] vsock/vmci: convert VMCI error code to -ENOMEM
[not found] ` <94d33849-d3c1-7468-72df-f87f897bafd2@sberdevices.ru>
@ 2023-03-30 8:19 ` Stefano Garzarella
2023-03-30 15:35 ` Vishnu Dasa via Virtualization
0 siblings, 1 reply; 3+ messages in thread
From: Stefano Garzarella @ 2023-03-30 8:19 UTC (permalink / raw)
To: Arseniy Krasnov, Vishnu Dasa
Cc: Bobby Eshleman, kvm, pv-drivers, netdev, linux-kernel,
virtualization, oxffffaa, Bryan Tan, Eric Dumazet,
Stefan Hajnoczi, kernel, Jakub Kicinski, Paolo Abeni,
David S. Miller
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 <AVKrasnov@sberdevices.ru>
>---
> 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
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC PATCH v2 2/3] vsock/vmci: convert VMCI error code to -ENOMEM
2023-03-30 8:19 ` [RFC PATCH v2 2/3] vsock/vmci: convert VMCI error code to -ENOMEM Stefano Garzarella
@ 2023-03-30 15:35 ` Vishnu Dasa via Virtualization
0 siblings, 0 replies; 3+ messages in thread
From: Vishnu Dasa via Virtualization @ 2023-03-30 15:35 UTC (permalink / raw)
To: Stefano Garzarella, Arseniy Krasnov
Cc: Bobby Eshleman, kvm, Pv-drivers, netdev, LKML,
Linux Virtualization, Krasnov Arseniy, Bryan Tan, Eric Dumazet,
Stefan Hajnoczi, kernel, Jakub Kicinski, Paolo Abeni,
David S. Miller
> On Mar 30, 2023, at 1:19 AM, Stefano Garzarella <sgarzare@redhat.com> wrote:
>
> !! External Email
>
> 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 <AVKrasnov@sberdevices.ru>
>> ---
>> 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")
Yes, good point. It would be better to do it this way for correctness.
Thanks,
Vishnu
>
> Thanks,
> Stefano
>
>
> !! External Email: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender.
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-03-30 15:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <60abc0da-0412-6e25-eeb0-8e32e3ec21e7@sberdevices.ru>
[not found] ` <b910764f-a193-e684-a762-f941883a0745@sberdevices.ru>
2023-03-30 8:02 ` [RFC PATCH v2 1/3] vsock: return errors other than -ENOMEM to socket Stefano Garzarella
[not found] ` <94d33849-d3c1-7468-72df-f87f897bafd2@sberdevices.ru>
2023-03-30 8:19 ` [RFC PATCH v2 2/3] vsock/vmci: convert VMCI error code to -ENOMEM Stefano Garzarella
2023-03-30 15:35 ` Vishnu Dasa via Virtualization
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).