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