Hi Felipe, just a gentle ping: The below patch was submitted more than 8 weeks ago and I'm neither seeing it on one of your branches nor have there been any comments on the list. Are there objections to this patch? Thanks, Lukas On Wed, Nov 20, 2019 at 11:15:15AM +0100, Lukas Wunner wrote: > The original dwc_otg driver used a DWC_WORKQ_SCHEDULE() wrapper to queue > work items. Because that wrapper acquired the driver's global spinlock, > an unlock/lock dance was necessary whenever a work item was queued up > while the global spinlock was already held. > > The dwc2 driver dropped DWC_WORKQ_SCHEDULE() in favor of a direct call > to queue_work(), but retained the (now gratuitous) unlock/lock dance in > dwc2_handle_conn_id_status_change_intr(). Drop it. > > Signed-off-by: Lukas Wunner <lukas@xxxxxxxxx> > --- > drivers/usb/dwc2/core_intr.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c > index 6af6add3d4c0..876ff31261d5 100644 > --- a/drivers/usb/dwc2/core_intr.c > +++ b/drivers/usb/dwc2/core_intr.c > @@ -288,14 +288,9 @@ static void dwc2_handle_conn_id_status_change_intr(struct dwc2_hsotg *hsotg) > > /* > * Need to schedule a work, as there are possible DELAY function calls. > - * Release lock before scheduling workq as it holds spinlock during > - * scheduling. > */ > - if (hsotg->wq_otg) { > - spin_unlock(&hsotg->lock); > + if (hsotg->wq_otg) > queue_work(hsotg->wq_otg, &hsotg->wf_otg); > - spin_lock(&hsotg->lock); > - } > } > > /** > -- > 2.24.0