On Thu, 23 Aug 2012, Marc Kleine-Budde wrote:

> Otherwise the module's refcount is 0 and it's possible to unload the module,
> even if the phy is in use.

> @@ -139,8 +140,10 @@ EXPORT_SYMBOL(devm_usb_put_phy);
>   */
>  void usb_put_phy(struct usb_phy *x)
>  {
> -     if (x)
> +     if (x) {
>               put_device(x->dev);
> +             module_put(x->dev->driver->owner);
> +     }

You musn't dereference x->dev after calling put_device().  Instead, 
save x->dev->driver->owner beforehand.

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