RE: [PATCHv2 10/13] usb: dwc2: initialize the spin_lock for both host and gadget

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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.

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux