On Sun, Dec 29, 2019 at 03:19:21PM +0100, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > The patch below does not apply to the 4.4-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. I think the bug this commit fixes (part of ea44d190764b commit) is not present in 4.4, nor 4.9 branches. In short: no need to backport it to 4.4 or 4.9 branch. > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From d986294ee55d719562b20aabe15a39bf8f863415 Mon Sep 17 00:00:00 2001 > From: Suwan Kim <suwan.kim027@xxxxxxxxx> > Date: Fri, 13 Dec 2019 11:30:54 +0900 > Subject: [PATCH] usbip: Fix receive error in vhci-hcd when using > scatter-gather > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > When vhci uses SG and receives data whose size is smaller than SG > buffer size, it tries to receive more data even if it acutally > receives all the data from the server. If then, it erroneously adds > error event and triggers connection shutdown. > > vhci-hcd should check if it received all the data even if there are > more SG entries left. So, check if it receivces all the data from > the server in for_each_sg() loop. > > Fixes: ea44d190764b ("usbip: Implement SG support to vhci-hcd and stub driver") > Reported-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx> > Tested-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Suwan Kim <suwan.kim027@xxxxxxxxx> > Acked-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> > Cc: stable <stable@xxxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20191213023055.19933-2-suwan.kim027@xxxxxxxxx > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > diff --git a/drivers/usb/usbip/usbip_common.c b/drivers/usb/usbip/usbip_common.c > index 6532d68e8808..e4b96674c405 100644 > --- a/drivers/usb/usbip/usbip_common.c > +++ b/drivers/usb/usbip/usbip_common.c > @@ -727,6 +727,9 @@ int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb) > > copy -= recv; > ret += recv; > + > + if (!copy) > + break; > } > > if (ret != size) > -- Best Regards, Marek Marczykowski-Górecki Invisible Things Lab A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing?
Attachment:
signature.asc
Description: PGP signature