On 8/22/14, 3:57 PM, Felipe Balbi wrote: > Hi, > > On Fri, Aug 22, 2014 at 08:52:23PM +0000, Paul Zimmerman wrote: >>> From: dinguyen@xxxxxxxxxx [mailto:dinguyen@xxxxxxxxxx] >>> Sent: Wednesday, July 30, 2014 8:21 AM >>> >>> Move spin_lock_init to common location for both host and gadget. >>> >>> Signed-off-by: Dinh Nguyen <dinguyen@xxxxxxxxxx> >>> --- >>> drivers/usb/dwc2/hcd.c | 1 - >>> drivers/usb/dwc2/platform.c | 1 + >>> 2 files changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c >>> index 07a7bcd..c6778d9 100644 >>> --- a/drivers/usb/dwc2/hcd.c >>> +++ b/drivers/usb/dwc2/hcd.c >>> @@ -2824,7 +2824,6 @@ int dwc2_hcd_init(struct dwc2_hsotg *hsotg, int irq, >>> >>> hcd->has_tt = 1; >>> >>> - spin_lock_init(&hsotg->lock); >>> ((struct wrapper_priv_data *) &hcd->hcd_priv)->hsotg = hsotg; >>> hsotg->priv = hcd; >>> >>> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c >>> index eb2a131..4898268 100644 >>> --- a/drivers/usb/dwc2/platform.c >>> +++ b/drivers/usb/dwc2/platform.c >>> @@ -197,6 +197,7 @@ static int dwc2_driver_probe(struct platform_device *dev) >>> } >>> >>> platform_set_drvdata(dev, hsotg); >>> + spin_lock_init(&hsotg->lock); >>> >>> return retval; >>> } >> >> Hi Dinh, >> >> I don't have a copy of your v3 patches in my mailbox anymore, so I am >> replying to the v2 one instead. >> >> Are you absolutely sure that no code that takes the spinlock can be >> called before this point? This is the last line in the probe() >> function, so I have a hard time believing it is safe to initialize >> the spinlock this late. >> >> In particular, the IRQ has already been attached, and >> usb_add_gadget_udc() has already been called. So it seems entirely >> possible that some other entity could try to access the driver before >> this point. > > you're right with this comment. request_irq() enables the IRQ line and > it could be that we already have a pending event to handle which fires > as soon as we enable that IRQ line. > Yes, thanks for catching this. I will move the call up in v4. Dinh -- 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