On Wed, 15 Jan 2014, Hans de Goede wrote:

> +static int ohci_platform_power_on(struct platform_device *dev)
> +{
> +     struct usb_hcd *hcd = platform_get_drvdata(dev);
> +     struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd);
> +     int clk, ret;
> +
> +     for (clk = 0; clk < OHCI_MAX_CLKS && priv->clks[clk]; clk++) {

You fixed this one...

> @@ -125,13 +225,22 @@ static int ohci_platform_remove(struct platform_device 
> *dev)
>  {
>       struct usb_hcd *hcd = platform_get_drvdata(dev);
>       struct usb_ohci_pdata *pdata = dev_get_platdata(&dev->dev);
> +     struct ohci_platform_priv *priv = hcd_to_ohci_priv(hcd);
> +     int clk;
>  
>       usb_remove_hcd(hcd);
> -     usb_put_hcd(hcd);
>  
>       if (pdata->power_off)
>               pdata->power_off(dev);
>  
> +     for (clk = 0; priv->clks[clk] && clk < OHCI_MAX_CLKS; clk++)

but not this one.  :-(  Same for the ehci-platform patch.

In fact, it might be easier to make this loop go backward, like
you do in the *_platform_power_off routines.

Is there a devm-type routine that will take care of all this for you?

Alan Stern

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