usb: xhci: Free the right ring in xhci_add_endpoint()
In the xhci_add_endpoint(), a new ring was allocated and saved at xhci_virt_ep->new_ring. Hence, when error happens, we need to free the allocated ring before returning error. Current code frees xhci_virt_ep->ring instead of the new_ring. This patch fixes this. Cc: <stable@vger.kernel.org> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b2a542bbb3
commit
9821786d7c
|
@ -1703,7 +1703,8 @@ static int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
|
|||
if (xhci->quirks & XHCI_MTK_HOST) {
|
||||
ret = xhci_mtk_add_ep_quirk(hcd, udev, ep);
|
||||
if (ret < 0) {
|
||||
xhci_free_endpoint_ring(xhci, virt_dev, ep_index);
|
||||
xhci_ring_free(xhci, virt_dev->eps[ep_index].new_ring);
|
||||
virt_dev->eps[ep_index].new_ring = NULL;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue