On Thu, Apr 07, 2016 at 02:03:45PM +0300, Mathias Nyman wrote: > On 04.03.2016 18:19, Thierry Reding wrote: > > From: Thierry Reding > > > > Add support for the on-chip XUSB controller present on Tegra SoCs. This > > controller, when loaded with external firmware, exposes an interface > > compliant with xHCI. This driver loads the firmware, starts the > > controller, and is able to service host-specific messages sent by the > > controller's firmware. > > > > The controller also supports USB device mode as well as powergating > > of the SuperSpeed and host-controller logic when not in use, but > > support for these is not yet implemented. > > > > Based on work by: > > Ajay Gupta > > Bharath Yadav > > Andrew Bresticker > > > > Cc: Greg Kroah-Hartman > > Cc: Mathias Nyman > > Signed-off-by: Thierry Reding > > --- > > ... > > > +static int tegra_xusb_remove(struct platform_device *pdev) > > +{ > > + struct tegra_xusb *tegra = platform_get_drvdata(pdev); > > + struct usb_hcd *hcd = tegra->hcd; > > + struct xhci_hcd *xhci; > > + > > + if (tegra->fw_loaded) { > > + xhci = hcd_to_xhci(hcd); > > + usb_remove_hcd(xhci->shared_hcd); > > + usb_put_hcd(xhci->shared_hcd); > > + usb_remove_hcd(hcd); > > + tegra_xusb_padctl_put(tegra->padctl); > > + usb_put_hcd(hcd); > > + kfree(xhci); > > Don't free xhci here, xhci is a part of hcd (hcd_priv) and hcd is already freed in usb_put_hcd() Ah, this was indeed reported to me about two weeks ago and fixed since then in my local tree. > Other than that I can't see any issues Thanks. Does this count as an Acked-by provided the kfree() is removed? Thierry