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]

 



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?
 
Jack
-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project



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