[ added linux-kernel ML to cc: ] Hi, On Tuesday, August 26, 2014 11:20:02 AM dinguyen@xxxxxxxxxxxxxxxxxxxxx wrote: > From: Dinh Nguyen <dinguyen@xxxxxxxxxxxxxxxxxxxxx> > > The Host workqueue will not get initialized if the driver is configured for > peripheral mode only. Thus we need to check for wq_otg before calling > queue_work(). This should be done at the same time that gadget/host probing is merged to preserve bisectability. > Signed-off-by: Dinh Nguyen <dinguyen@xxxxxxxxxxxxxxxxxxxxx> > Acked-by: Paul Zimmerman <paulz@xxxxxxxxxxxx> > --- > drivers/usb/dwc2/core_intr.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/dwc2/core_intr.c b/drivers/usb/dwc2/core_intr.c > index 651785d..1240875 100644 > --- a/drivers/usb/dwc2/core_intr.c > +++ b/drivers/usb/dwc2/core_intr.c > @@ -287,9 +287,11 @@ static void dwc2_handle_conn_id_status_change_intr(struct dwc2_hsotg *hsotg) > * Release lock before scheduling workq as it holds spinlock during > * scheduling. > */ > - spin_unlock(&hsotg->lock); > - queue_work(hsotg->wq_otg, &hsotg->wf_otg); > - spin_lock(&hsotg->lock); > + if (hsotg->wq_otg) { > + spin_unlock(&hsotg->lock); > + queue_work(hsotg->wq_otg, &hsotg->wf_otg); > + spin_lock(&hsotg->lock); > + } > > /* Clear interrupt */ > writel(GINTSTS_CONIDSTSCHNG, hsotg->regs + GINTSTS); Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html