aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/cdns3/cdns3-debug.h
diff options
context:
space:
mode:
authorThinh Nguyen <[email protected]>2021-05-12 20:17:09 -0700
committerGreg Kroah-Hartman <[email protected]>2021-05-21 14:25:07 +0200
commit25dda9fc56bd90d45f9a4516bcfa5211e61b4290 (patch)
treea3a1ff625004c3d327422fcc944d9717187690db /drivers/usb/cdns3/cdns3-debug.h
parent4f2629ea67e7225c3fd292c7fe4f5b3c9d6392de (diff)
usb: dwc3: gadget: Properly track pending and queued SG
The driver incorrectly uses req->num_pending_sgs to track both the number of pending and queued SG entries. It only prepares the next request if the previous is done, and it doesn't update num_pending_sgs until there is TRB completion interrupt. This may starve the controller of more TRBs until the num_pending_sgs is decremented. Fix this by decrementing the num_pending_sgs after they are queued and properly track both num_mapped_sgs and num_queued_sgs. Fixes: c96e6725db9d ("usb: dwc3: gadget: Correct the logic for queuing sgs") Cc: <[email protected]> Reported-by: Michael Grzeschik <[email protected]> Tested-by: Michael Grzeschik <[email protected]> Acked-by: Felipe Balbi <[email protected]> Signed-off-by: Thinh Nguyen <[email protected]> Link: https://lore.kernel.org/r/ba24591dbcaad8f244a3e88bd449bb7205a5aec3.1620874069.git.Thinh.Nguyen@synopsys.com Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/usb/cdns3/cdns3-debug.h')
0 files changed, 0 insertions, 0 deletions