Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b00cbab6 authored by Ziqi Chen's avatar Ziqi Chen Committed by Gerrit - the friendly Code Review server
Browse files

usb: dwc3: initialize ep0_usb_req.request.dma to avoid kernel panic



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 kernel panic.

Change-Id: Icf63dc383304c83fe36fb908226240e139a7f9fc
Signed-off-by: default avatarZiqi Chen <ziqic@codeaurora.org>
parent b642d5d0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -424,6 +424,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);
}
@@ -760,6 +761,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);
}