vif->ssid_len == sme->ssid_len &&
            !memcmp(vif->ssid, sme->ssid, vif->ssid_len)) {
                ar->reconnect_flag = true;
-               status = ath6kl_wmi_reconnect_cmd(ar->wmi, ar->req_bssid,
+               status = ath6kl_wmi_reconnect_cmd(ar->wmi, vif->req_bssid,
                                                  ar->ch_hint);
 
                up(&ar->sem);
        if (sme->channel)
                ar->ch_hint = sme->channel->center_freq;
 
-       memset(ar->req_bssid, 0, sizeof(ar->req_bssid));
+       memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
        if (sme->bssid && !is_broadcast_ether_addr(sme->bssid))
-               memcpy(ar->req_bssid, sme->bssid, sizeof(ar->req_bssid));
+               memcpy(vif->req_bssid, sme->bssid, sizeof(vif->req_bssid));
 
        ath6kl_set_wpa_version(ar, sme->crypto.wpa_versions);
 
                                        vif->prwise_crypto_len,
                                        vif->grp_crypto, vif->grp_crypto_len,
                                        vif->ssid_len, vif->ssid,
-                                       ar->req_bssid, ar->ch_hint,
+                                       vif->req_bssid, ar->ch_hint,
                                        ar->connect_ctrl_flags);
 
        up(&ar->sem);
        vif->ssid_len = 0;
 
        if (!test_bit(SKIP_SCAN, &ar->flag))
-               memset(ar->req_bssid, 0, sizeof(ar->req_bssid));
+               memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
 
        up(&ar->sem);
 
 void ath6kl_cfg80211_tkip_micerr_event(struct ath6kl *ar, u8 keyid,
                                       bool ismcast)
 {
+       /* TODO: Findout vif */
+       struct ath6kl_vif *vif = ar->vif;
+
        ath6kl_dbg(ATH6KL_DBG_WLAN_CFG,
                   "%s: keyid %d, ismcast %d\n", __func__, keyid, ismcast);
 
-       cfg80211_michael_mic_failure(ar->net_dev, ar->bssid,
+       cfg80211_michael_mic_failure(ar->net_dev, vif->bssid,
                                     (ismcast ? NL80211_KEYTYPE_GROUP :
                                      NL80211_KEYTYPE_PAIRWISE), keyid, NULL,
                                     GFP_KERNEL);
                return -EOPNOTSUPP;
        }
 
-       memset(ar->req_bssid, 0, sizeof(ar->req_bssid));
+       memset(vif->req_bssid, 0, sizeof(vif->req_bssid));
        if (ibss_param->bssid && !is_broadcast_ether_addr(ibss_param->bssid))
-               memcpy(ar->req_bssid, ibss_param->bssid, sizeof(ar->req_bssid));
+               memcpy(vif->req_bssid, ibss_param->bssid,
+                      sizeof(vif->req_bssid));
 
        ath6kl_set_wpa_version(ar, 0);
 
                                        vif->prwise_crypto_len,
                                        vif->grp_crypto, vif->grp_crypto_len,
                                        vif->ssid_len, vif->ssid,
-                                       ar->req_bssid, ar->ch_hint,
+                                       vif->req_bssid, ar->ch_hint,
                                        ar->connect_ctrl_flags);
        set_bit(CONNECT_PEND, &vif->flags);
 
        int ret;
        u8 mcs;
 
-       if (memcmp(mac, ar->bssid, ETH_ALEN) != 0)
+       if (memcmp(mac, vif->bssid, ETH_ALEN) != 0)
                return -ENOENT;
 
        if (down_interruptible(&ar->sem))
        struct ath6kl_vif *vif = netdev_priv(netdev);
 
        if (test_bit(CONNECTED, &vif->flags))
-               return ath6kl_wmi_setpmkid_cmd(ar->wmi, ar->bssid, NULL, false);
+               return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->bssid,
+                                              NULL, false);
        return 0;
 }
 
 
                if (discon_issued)
                        ath6kl_disconnect_event(ar, DISCONNECT_CMD,
                                                (vif->nw_type & AP_NETWORK) ?
-                                               bcast_mac : ar->bssid,
+                                               bcast_mac : vif->bssid,
                                                0, NULL, 0);
 
                ar->user_key_ctrl = 0;
 
        switch (ar->sme_state) {
        case SME_CONNECTING:
-               cfg80211_connect_result(ar->net_dev, ar->bssid, NULL, 0,
+               cfg80211_connect_result(ar->net_dev, vif->bssid, NULL, 0,
                                        NULL, 0,
                                        WLAN_STATUS_UNSPECIFIED_FAILURE,
                                        GFP_KERNEL);
                                      assoc_req_len, assoc_resp_len,
                                      assoc_info);
 
-       memcpy(ar->bssid, bssid, sizeof(ar->bssid));
+       memcpy(vif->bssid, bssid, sizeof(vif->bssid));
        ar->bss_ch = channel;
 
        if ((vif->nw_type == INFRA_NETWORK))
                ar->user_key_ctrl = 0;
 
        netif_stop_queue(ar->net_dev);
-       memset(ar->bssid, 0, sizeof(ar->bssid));
+       memset(vif->bssid, 0, sizeof(vif->bssid));
        ar->bss_ch = 0;
 
        ath6kl_tx_data_cleanup(ar);