diff --git a/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c b/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c index a291ff127eba..1aae0beef392 100644 --- a/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c +++ b/drivers/usb/dwc_otg_310/dwc_otg_hcd_queue.c @@ -71,8 +71,11 @@ void dwc_otg_hcd_qh_free(dwc_otg_hcd_t *hcd, dwc_otg_qh_t *qh) buf_size = hcd->core_if->core_params->max_transfer_size; buf_size = buf_size > 65536 ? 65536 : buf_size; } + + DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags); DWC_DEV_DMA_FREE(buf_size, qh->dw_align_buf, qh->dw_align_buf_dma); + DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags); } DWC_FREE(qh);