| From a8c2b0929f10346e095fdc1fb0964a01e3db18fc Mon Sep 17 00:00:00 2001 |
| From: Adam Wallis <awallis@codeaurora.org> |
| Date: Thu, 5 Oct 2017 11:21:47 +0300 |
| Subject: [PATCH 0253/1795] xhci: allow TRACE to work with EVENT ring dequeue |
| |
| inc_deq() currently bails earlier for EVENT rings than the common return |
| point of the function, due to the fact that EVENT rings do not have |
| link TRBs. The unfortunate side effect of this is that the very useful |
| trace_xhci_inc_deq() function is not called/usable for EVENT ring |
| debug. |
| |
| This patch provides a refactor by removing the multiple return exit |
| points into a single return which additionally allows for all rings to |
| use the trace function. |
| |
| Signed-off-by: Adam Wallis <awallis@codeaurora.org> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| (cherry picked from commit 49d5b05e191d4486c125ff00a01fc5e9e7ba452c) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| --- |
| drivers/usb/host/xhci-ring.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c |
| index 91cab441b82f..d5f44776b360 100644 |
| --- a/drivers/usb/host/xhci-ring.c |
| +++ b/drivers/usb/host/xhci-ring.c |
| @@ -172,13 +172,13 @@ static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) |
| if (ring->type == TYPE_EVENT) { |
| if (!last_trb_on_seg(ring->deq_seg, ring->dequeue)) { |
| ring->dequeue++; |
| - return; |
| + goto out; |
| } |
| if (last_trb_on_ring(ring, ring->deq_seg, ring->dequeue)) |
| ring->cycle_state ^= 1; |
| ring->deq_seg = ring->deq_seg->next; |
| ring->dequeue = ring->deq_seg->trbs; |
| - return; |
| + goto out; |
| } |
| |
| /* All other rings have link trbs */ |
| @@ -191,6 +191,7 @@ static void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) |
| ring->dequeue = ring->deq_seg->trbs; |
| } |
| |
| +out: |
| trace_xhci_inc_deq(ring); |
| |
| return; |
| -- |
| 2.19.0 |
| |