Stefano Garzarella
2023-Mar-30 08:19 UTC
[RFC PATCH v2 2/3] vsock/vmci: convert VMCI error code to -ENOMEM
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 at 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
Vishnu Dasa
2023-Mar-30 15:35 UTC
[RFC PATCH v2 2/3] vsock/vmci: convert VMCI error code to -ENOMEM
> On Mar 30, 2023, at 1:19 AM, Stefano Garzarella <sgarzare at 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 at 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.