diff options
Diffstat (limited to 'kernel/drivers/net/wireless/orinoco/orinoco_usb.c')
-rw-r--r-- | kernel/drivers/net/wireless/orinoco/orinoco_usb.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/drivers/net/wireless/orinoco/orinoco_usb.c b/kernel/drivers/net/wireless/orinoco/orinoco_usb.c index 8fb1c9272..6c0f4c963 100644 --- a/kernel/drivers/net/wireless/orinoco/orinoco_usb.c +++ b/kernel/drivers/net/wireless/orinoco/orinoco_usb.c @@ -1502,6 +1502,7 @@ static inline void ezusb_delete(struct ezusb_priv *upriv) if (upriv->dev) { struct orinoco_private *priv = ndev_priv(upriv->dev); orinoco_if_del(priv); + wiphy_unregister(priv_to_wiphy(upriv)); free_orinocodev(priv); } } @@ -1575,6 +1576,7 @@ static int ezusb_probe(struct usb_interface *interface, ezusb_hard_reset, NULL); if (!priv) { err("Couldn't allocate orinocodev"); + retval = -ENOMEM; goto exit; } @@ -1695,6 +1697,7 @@ static int ezusb_probe(struct usb_interface *interface, if (orinoco_if_add(priv, 0, 0, &ezusb_netdev_ops) != 0) { upriv->dev = NULL; err("%s: orinoco_if_add() failed", __func__); + wiphy_unregister(priv_to_wiphy(priv)); goto error; } upriv->dev = priv->ndev; |