Hello. On 01/14/2015 08:04 PM, Felipe Balbi wrote:
From: Amit Virdi <amit.virdi@xxxxxx>
When scatter gather (SG) is used, multiple TRBs are prepared from one DWC3 request (dwc3_request). So while preparing TRBs, the 'last' flag should be set only when it is the last TRB being prepared from the last dwc3_request entry.
The current implementation uses list_is_last to check if the dwc3_request is the last entry from the request_list. However, list_is_last returns false for the last entry too. This is because, while preparing the first TRB from a request, the function dwc3_prepare_one_trb modifies the request's next and prev pointers while moving the URB to req_queued. Hence, list_is_last always returns false no matter what.
The correct way is not to access the modified pointers of dwc3_request but to use list_empty macro instead.
Fixes: e5ba5ec833aa4a76980b512d6a6779643516b850 ("usb: dwc3: gadget: fix scatter
12-digit SHA1 hash is enough, accoring to Documentation/SubmittingPatches.
gather implementation"
You forgot the closing paren. Perhaps these can be fixed by the maintainer while applying...
Signed-off-by: Amit Virdi <amit.virdi@xxxxxx> Cc: <stable@xxxxxxxxxxxxxxx> # v3.9+ Signed-off-by: Felipe Balbi <balbi@xxxxxx>
WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html