switch (vif->type) {
                case NL80211_IFTYPE_P2P_CLIENT:
                case NL80211_IFTYPE_STATION:
-                       if (vif->bss_conf.assoc)
+                       if (avp->assoc)
                                active = true;
                        break;
                default:
 
        switch (vif->type) {
        case NL80211_IFTYPE_STATION:
-               if (!vif->bss_conf.assoc)
+               if (!avp->assoc)
                        return false;
 
                skb = ieee80211_nullfunc_get(sc->hw, vif);
        rcu_read_lock();
 
        vif = avp->vif;
-       sta = ieee80211_find_sta(vif, vif->bss_conf.bssid);
+       sta = ieee80211_find_sta(vif, avp->bssid);
        if (!sta)
                goto out;
 
 
 static void ath9k_vif_iter(struct ath9k_vif_iter_data *iter_data,
                           u8 *mac, struct ieee80211_vif *vif)
 {
+       struct ath_vif *avp = (struct ath_vif *)vif->drv_priv;
        int i;
 
        if (iter_data->has_hw_macaddr) {
                break;
        case NL80211_IFTYPE_STATION:
                iter_data->nstations++;
-               if (vif->bss_conf.assoc && !iter_data->primary_sta)
+               if (avp->assoc && !iter_data->primary_sta)
                        iter_data->primary_sta = vif;
                break;
        case NL80211_IFTYPE_ADHOC:
                                  struct ieee80211_vif *vif, bool changed)
 {
        struct ath_common *common = ath9k_hw_common(sc->sc_ah);
-       struct ieee80211_bss_conf *bss_conf = &vif->bss_conf;
+       struct ath_vif *avp = (struct ath_vif *)vif->drv_priv;
        unsigned long flags;
 
        set_bit(ATH_OP_PRIM_STA_VIF, &common->op_flags);
 
-       ether_addr_copy(common->curbssid, bss_conf->bssid);
-       common->curaid = bss_conf->aid;
+       ether_addr_copy(common->curbssid, avp->bssid);
+       common->curaid = avp->aid;
        ath9k_hw_write_associd(sc->sc_ah);
 
        if (changed) {
                ath_dbg(common, CONFIG, "BSSID %pM Changed ASSOC %d\n",
                        bss_conf->bssid, bss_conf->assoc);
 
+               ether_addr_copy(avp->bssid, bss_conf->bssid);
+               avp->aid = bss_conf->aid;
+               avp->assoc = bss_conf->assoc;
+
                ath9k_calculate_summary_state(sc, avp->chanctx);
 
                if (ath9k_is_chanctx_enabled()) {