* 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
[parent not found: <94d33849-d3c1-7468-72df-f87f897bafd2@sberdevices.ru>]
* 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).