Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> writes: > 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. > > Cc: <stable@xxxxxxxxxxxxxxx> > Tested-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > Reported-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > Fixes: c96e6725db9d ("usb: dwc3: gadget: Correct the logic for queuing sgs") > Signed-off-by: Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> Acked-by: Felipe Balbi <balbi@xxxxxxxxxx> -- balbi
Attachment:
signature.asc
Description: PGP signature