Re: FAILED: patch "[PATCH] usb: xhci: Handle error condition in xhci_stop_device()" failed to apply to 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 23, 2017 at 06:13:50PM -0700, Jack Pham wrote:
> Hi Greg,
> 
> On Mon, Oct 23, 2017 at 02:52:50PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> > 
> > The patch below does not apply to the 4.9-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>.
> 
> It appears to be a trivial conflict. See below.
> 
> > ------------------ original commit in Linus's tree ------------------
> > 
> > From b3207c65dfafae27e7c492cb9188c0dc0eeaf3fd Mon Sep 17 00:00:00 2001
> > From: Mayank Rana <mrana@xxxxxxxxxxxxxx>
> > Date: Fri, 6 Oct 2017 17:45:30 +0300
> > Subject: [PATCH] usb: xhci: Handle error condition in xhci_stop_device()
> > 
> > xhci_stop_device() calls xhci_queue_stop_endpoint() multiple times
> > without checking the return value. xhci_queue_stop_endpoint() can
> > return error if the HC is already halted or unable to queue commands.
> > This can cause a deadlock condition as xhci_stop_device() would
> > end up waiting indefinitely for a completion for the command that
> > didn't get queued. Fix this by checking the return value and bailing
> > out of xhci_stop_device() in case of error. This patch happens to fix
> > potential memory leaks of the allocated command structures as well.
> > 
> > Fixes: c311e391a7ef ("xhci: rework command timeout and cancellation,")
> > Cc: <stable@xxxxxxxxxxxxxxx>
> > Signed-off-by: Mayank Rana <mrana@xxxxxxxxxxxxxx>
> > Signed-off-by: Jack Pham <jackp@xxxxxxxxxxxxxx>
> > Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >
> > diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
> > index da9158f171cb..a2336deb5e36 100644
> > --- a/drivers/usb/host/xhci-hub.c
> > +++ b/drivers/usb/host/xhci-hub.c
> > @@ -420,14 +420,25 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend)
> >  						     GFP_NOWAIT);
> >  			if (!command) {
> >  				spin_unlock_irqrestore(&xhci->lock, flags);
> > -				xhci_free_command(xhci, cmd);
> > -				return -ENOMEM;
> 
> The conflict appears to be here. There was an extra blank line after
> this that had been removed by another patch in 4.13. So when applying to
> the older stable trees which still has the blank line I guess git
> couldn't resolve it.
> 
> Is this enough info for you to fix up or would you need me to send a
> revised backport patch? If I send, would I need to add my S-o-b again
> after the other tags?

I need a new patch please, that makes it the easiest for me to ensure I
got it right :)

And if you want to add a new s-o-b, that's fine as well, but not needed.

thanks,

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]