mwifiex: store permanant mac address in adapter structure
[deliverable/linux.git] / drivers / net / wireless / mwifiex / main.c
index d235adb82c94347cf3c95979e8b34b466abce5bc..cb9cab2b0ec0a2990e9f3774e736bb93e4c167a6 100644 (file)
@@ -562,7 +562,8 @@ static int mwifiex_init_hw_fw(struct mwifiex_adapter *adapter)
 static int
 mwifiex_open(struct net_device *dev)
 {
-       netif_tx_start_all_queues(dev);
+       netif_carrier_off(dev);
+
        return 0;
 }
 
@@ -967,7 +968,6 @@ void mwifiex_init_priv_params(struct mwifiex_private *priv,
        /* Initialize private structure */
        priv->current_key_index = 0;
        priv->media_connected = false;
-       memset(&priv->nick_name, 0, sizeof(priv->nick_name));
        memset(priv->mgmt_ie, 0,
               sizeof(struct mwifiex_ie) * MAX_MGMT_IE_INDEX);
        priv->beacon_idx = MWIFIEX_AUTO_IDX_MASK;
@@ -975,6 +975,7 @@ void mwifiex_init_priv_params(struct mwifiex_private *priv,
        priv->assocresp_idx = MWIFIEX_AUTO_IDX_MASK;
        priv->rsn_idx = MWIFIEX_AUTO_IDX_MASK;
        priv->num_tx_timeout = 0;
+       ether_addr_copy(priv->curr_addr, priv->adapter->perm_addr);
        memcpy(dev->dev_addr, priv->curr_addr, ETH_ALEN);
 
        if (GET_BSS_ROLE(priv) == MWIFIEX_BSS_ROLE_STA ||
@@ -1203,8 +1204,9 @@ int mwifiex_remove_card(struct mwifiex_adapter *adapter, struct semaphore *sem)
                        continue;
 
                rtnl_lock();
-               if (priv->wdev && priv->netdev)
-                       mwifiex_del_virtual_intf(adapter->wiphy, priv->wdev);
+               if (priv->netdev &&
+                   priv->wdev.iftype != NL80211_IFTYPE_UNSPECIFIED)
+                       mwifiex_del_virtual_intf(adapter->wiphy, &priv->wdev);
                rtnl_unlock();
        }
 
This page took 0.026238 seconds and 5 git commands to generate.