net/wireless/libertas: do not call wiphy_unregister() w/o wiphy_register()
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / libertas / cfg.c
index 4396dccd12ac127b27dda8134e1edefccd00324a..82ebe1461a77c99721837729c33ddb59e1a56eb7 100644 (file)
@@ -172,6 +172,8 @@ int lbs_cfg_register(struct lbs_private *priv)
        if (ret < 0)
                lbs_pr_err("cannot register wiphy device\n");
 
+       priv->wiphy_registered = true;
+
        ret = register_netdev(priv->dev);
        if (ret)
                lbs_pr_err("cannot register network device\n");
@@ -190,9 +192,11 @@ void lbs_cfg_free(struct lbs_private *priv)
        if (!wdev)
                return;
 
-       if (wdev->wiphy) {
+       if (priv->wiphy_registered)
                wiphy_unregister(wdev->wiphy);
+
+       if (wdev->wiphy)
                wiphy_free(wdev->wiphy);
-       }
+
        kfree(wdev);
 }