usb: dwc3: initialize ep0_usb_req.request.dma to avoid crash
It seems possibility that usb_gadget_map_request may not been called during usb cable connected so ep0_usb_req.request.dma is still by default 0 which will pass the if condition in unmapping, hence unmap a request which never been mapped. Initialize ep0_usb_req.request.dma to DMA_ERROR_CODE will avoid this corner case crash. Change-Id: Icf63dc383304c83fe36fb908226240e139a7f9fc Signed-off-by: Ziqi Chen <ziqic@codeaurora.org>
This commit is contained in:
parent
560d31410c
commit
d338487c10
1 changed files with 2 additions and 0 deletions
|
@ -439,6 +439,7 @@ static int dwc3_ep0_handle_status(struct dwc3 *dwc,
|
|||
dwc->ep0_usb_req.request.length = sizeof(*response_pkt);
|
||||
dwc->ep0_usb_req.request.buf = dwc->setup_buf;
|
||||
dwc->ep0_usb_req.request.complete = dwc3_ep0_status_cmpl;
|
||||
dwc->ep0_usb_req.request.dma = DMA_ERROR_CODE;
|
||||
|
||||
return __dwc3_gadget_ep0_queue(dep, &dwc->ep0_usb_req);
|
||||
}
|
||||
|
@ -729,6 +730,7 @@ static int dwc3_ep0_set_sel(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl)
|
|||
dwc->ep0_usb_req.request.length = dep->endpoint.maxpacket;
|
||||
dwc->ep0_usb_req.request.buf = dwc->setup_buf;
|
||||
dwc->ep0_usb_req.request.complete = dwc3_ep0_set_sel_cmpl;
|
||||
dwc->ep0_usb_req.request.dma = DMA_ERROR_CODE;
|
||||
|
||||
return __dwc3_gadget_ep0_queue(dep, &dwc->ep0_usb_req);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue