FAILED: patch "[PATCH] usb: dwc3: gadget: properly account queued requests" failed to apply to 4.8-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.8-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 <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
a9c3ca5fae6bf73770f0576eaf57d5f1305ef4b3Mon Sep 17 00:00:00 2001
From: Felipe Balbi <[email protected]>
Date: Wed, 5 Oct 2016 14:24:37 +0300
Subject: [PATCH] usb: dwc3: gadget: properly account queued requests
Some requests could be accounted for multiple times. Let's fix that so each and every requests is accounted for only once.
drivers/usb/dwc3/gadget.c +5 -3
@@ -783,6 +783,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, req->trb = trb; req->trb_dma =dwc3_trb_dma_offset (dep, trb); req->first_trb_index = dep->trb_enqueue; + dep->queued_requests++; }dwc3_ep_inc_enq (dep);
@@ -833,8 +834,6 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, trb->ctrl |=DWC3_TRB_CTRL_HWO ; - dep->queued_requests++; -trace_dwc3_prepare_trb (dep, trb); }
@@ -1861,8 +1860,11 @@ static int __dwc3_cleanup_done_trbs(struct dwc3 *dwc, struct dwc3_ep *dep,unsigned int s_pkt =0 ;unsigned int trb_status; - dep->queued_requests--;dwc3_ep_inc_deq (dep); + +if (req->trb == trb) + dep->queued_requests--; +trace_dwc3_complete_trb (dep, trb);/*
PATCH 1/1 usb: dwc3: gadget: properly account queued requests
commit a9c3ca5fae6bf73770f0576eaf57d5f1305ef4b3 upstream.
Some requests could be accounted for multiple times. Let's fix that so each and every requests is accounted for only once.
--- drivers/usb/dwc3/gadget.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/usb/dwc3/gadget.c +4 -3
@@ -789,6 +789,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, req->trb = trb; req->trb_dma =dwc3_trb_dma_offset (dep, trb); req->first_trb_index = dep->trb_enqueue; + dep->queued_requests++; }dwc3_ep_inc_enq (dep);
@@ -841,8 +842,6 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep, trb->ctrl |=DWC3_TRB_CTRL_HWO ; - dep->queued_requests++; -trace_dwc3_prepare_trb (dep, trb); }
@@ -1963,7 +1962,9 @@ static int __dwc3_cleanup_done_trbs(struct dwc3 *dwc, struct dwc3_ep *dep,unsigned int s_pkt =0 ;unsigned int trb_status; - dep->queued_requests--; +if (req->trb == trb) + dep->queued_requests--; +trace_dwc3_complete_trb (dep, trb);/*
Signature · 1 line
2.10.1
Greg Kroah-Hartman
maintainerRe: [PATCH] usb: dwc3: gadget: properly account queued requests
Quoted 6 lines · Felipe Balbi
commit
a9c3ca5fae6bf73770f0576eaf57d5f1305ef4b3upstream.Some requests could be accounted for multiple times. Let's fix that so each and every requests is accounted for only once.
Quoted 6 lines
Cc <[email protected]> # v4.8Fixes 55a0237f8f47 ("usb: dwc3: gadget: use allocated/queued reqs for LST bit")Signed-off-by Felipe Balbi <[email protected]>--- drivers/usb/dwc3/gadget.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
Thanks, now queued up.
greg k-h