|
@@ -140,11 +140,9 @@ static int prism2sta_probe_usb(struct usb_interface *interface,
|
|
|
prism2_reset_holdtime,
|
|
|
prism2_reset_settletime, 0);
|
|
|
if (result != 0) {
|
|
|
- unregister_wlandev(wlandev);
|
|
|
- hfa384x_destroy(hw);
|
|
|
result = -EIO;
|
|
|
dev_err(&interface->dev, "hfa384x_corereset() failed.\n");
|
|
|
- goto failed;
|
|
|
+ goto failed_reset;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -159,11 +157,15 @@ static int prism2sta_probe_usb(struct usb_interface *interface,
|
|
|
if (register_wlandev(wlandev) != 0) {
|
|
|
dev_err(&interface->dev, "register_wlandev() failed.\n");
|
|
|
result = -EIO;
|
|
|
- goto failed;
|
|
|
+ goto failed_register;
|
|
|
}
|
|
|
|
|
|
goto done;
|
|
|
|
|
|
+failed_register:
|
|
|
+ usb_put_dev(dev);
|
|
|
+failed_reset:
|
|
|
+ wlan_unsetup(wlandev);
|
|
|
failed:
|
|
|
kfree(wlandev);
|
|
|
kfree(hw);
|