| From dbca0492e7c02adc4a6569f705d1102e9573b5ec Mon Sep 17 00:00:00 2001 |
| From: Lu Baolu <baolu.lu@linux.intel.com> |
| Date: Mon, 23 Jan 2017 14:19:55 +0200 |
| Subject: [PATCH 186/255] usb: xhci: remove unnecessary second abort try |
| |
| The second try was a workaround for (what we thought was) command |
| ring failing to stop in the first place. But this turns out to be |
| due to the race that we have fixed(see "xhci: Fix race related to |
| abort operation"). With that fix, it is time to remove the second |
| try. |
| |
| Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit 1cc6d8617b9107f22ab86cec168f7f53f5ef42be) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| drivers/usb/host/xhci-ring.c | 18 +++++------------- |
| 1 file changed, 5 insertions(+), 13 deletions(-) |
| |
| --- a/drivers/usb/host/xhci-ring.c |
| +++ b/drivers/usb/host/xhci-ring.c |
| @@ -362,19 +362,11 @@ static int xhci_abort_cmd_ring(struct xh |
| ret = xhci_handshake(&xhci->op_regs->cmd_ring, |
| CMD_RING_RUNNING, 0, 5 * 1000 * 1000); |
| if (ret < 0) { |
| - /* we are about to kill xhci, give it one more chance */ |
| - xhci_write_64(xhci, temp_64 | CMD_RING_ABORT, |
| - &xhci->op_regs->cmd_ring); |
| - udelay(1000); |
| - ret = xhci_handshake(&xhci->op_regs->cmd_ring, |
| - CMD_RING_RUNNING, 0, 3 * 1000 * 1000); |
| - if (ret < 0) { |
| - xhci_err(xhci, "Stopped the command ring failed, " |
| - "maybe the host is dead\n"); |
| - xhci->xhc_state |= XHCI_STATE_DYING; |
| - xhci_halt(xhci); |
| - return -ESHUTDOWN; |
| - } |
| + xhci_err(xhci, |
| + "Stop command ring failed, maybe the host is dead\n"); |
| + xhci->xhc_state |= XHCI_STATE_DYING; |
| + xhci_halt(xhci); |
| + return -ESHUTDOWN; |
| } |
| /* |
| * Writing the CMD_RING_ABORT bit should cause a cmd completion event, |