From e9c7469e1df0acee58f2d7ba9a014bff09b6648c Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Mon, 29 Mar 2010 17:14:18 +0200 Subject: [PATCH] --- yaml --- r: 189519 b: refs/heads/master c: 7371400431389e1df6a2a05ab9882055b8a6ff2c h: refs/heads/master i: 189517: b64e257fea0a4fdab833c0d0a3124abddbbd0937 189515: 908ff3d1c2a5073998ad1772c433254d41ed28cb 189511: 9f82a35776391f9b2779f4e348b5520d1f633e10 189503: fe48e1c8063b4ee4ee384a02fe5cca07c90d2fe5 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/libertas/cfg.c | 8 ++++++-- trunk/drivers/net/wireless/libertas/dev.h | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 47ec3c7eae97..77f2652bf95e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8e1a53c615e8efe0fac670f2973da64758748a8a +refs/heads/master: 7371400431389e1df6a2a05ab9882055b8a6ff2c diff --git a/trunk/drivers/net/wireless/libertas/cfg.c b/trunk/drivers/net/wireless/libertas/cfg.c index 4396dccd12ac..82ebe1461a77 100644 --- a/trunk/drivers/net/wireless/libertas/cfg.c +++ b/trunk/drivers/net/wireless/libertas/cfg.c @@ -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); } diff --git a/trunk/drivers/net/wireless/libertas/dev.h b/trunk/drivers/net/wireless/libertas/dev.h index 6977ee820214..6875e1498bd5 100644 --- a/trunk/drivers/net/wireless/libertas/dev.h +++ b/trunk/drivers/net/wireless/libertas/dev.h @@ -36,6 +36,7 @@ struct lbs_private { /* CFG80211 */ struct wireless_dev *wdev; + bool wiphy_registered; /* Mesh */ struct net_device *mesh_dev; /* Virtual device */