if (!hw) {
                ret = -ENOMEM;
                priv = NULL;
-               goto exit;
+               goto err_put_dev;
        }
 
        priv = hw->priv;
 
        ret = rtl8xxxu_parse_usb(priv, interface);
        if (ret)
-               goto exit;
+               goto err_set_intfdata;
 
        ret = rtl8xxxu_identify_chip(priv);
        if (ret) {
                dev_err(&udev->dev, "Fatal - failed to identify chip\n");
-               goto exit;
+               goto err_set_intfdata;
        }
 
        ret = rtl8xxxu_read_efuse(priv);
        if (ret) {
                dev_err(&udev->dev, "Fatal - failed to read EFuse\n");
-               goto exit;
+               goto err_set_intfdata;
        }
 
        ret = priv->fops->parse_efuse(priv);
        if (ret) {
                dev_err(&udev->dev, "Fatal - failed to parse EFuse\n");
-               goto exit;
+               goto err_set_intfdata;
        }
 
        rtl8xxxu_print_chipinfo(priv);
        ret = priv->fops->load_firmware(priv);
        if (ret) {
                dev_err(&udev->dev, "Fatal - failed to load firmware\n");
-               goto exit;
+               goto err_set_intfdata;
        }
 
        ret = rtl8xxxu_init_device(hw);
        if (ret)
-               goto exit;
+               goto err_set_intfdata;
 
        hw->wiphy->max_scan_ssids = 1;
        hw->wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN;
        if (ret) {
                dev_err(&udev->dev, "%s: Failed to register: %i\n",
                        __func__, ret);
-               goto exit;
+               goto err_set_intfdata;
        }
 
        return 0;
 
-exit:
+err_set_intfdata:
        usb_set_intfdata(interface, NULL);
 
        if (priv) {
                mutex_destroy(&priv->usb_buf_mutex);
                mutex_destroy(&priv->h2c_mutex);
        }
-       usb_put_dev(udev);
 
        ieee80211_free_hw(hw);
+err_put_dev:
+       usb_put_dev(udev);
 
        return ret;
 }