> From: dingu...@altera.com [mailto:dingu...@altera.com]
> 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 <dingu...@altera.com>
> ---
>  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.

The same comment applies to your "Update pci portion of the dwc2 driver"
patch.

-- 
Paul

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to