|
@@ -974,9 +974,8 @@ void ath9k_calculate_iter_data(struct ath_softc *sc,
|
|
struct ath_vif *avp;
|
|
struct ath_vif *avp;
|
|
|
|
|
|
/*
|
|
/*
|
|
- * Pick the MAC address of the first interface as the new hardware
|
|
|
|
- * MAC address. The hardware will use it together with the BSSID mask
|
|
|
|
- * when matching addresses.
|
|
|
|
|
|
+ * The hardware will use primary station addr together with the
|
|
|
|
+ * BSSID mask when matching addresses.
|
|
*/
|
|
*/
|
|
memset(iter_data, 0, sizeof(*iter_data));
|
|
memset(iter_data, 0, sizeof(*iter_data));
|
|
memset(&iter_data->mask, 0xff, ETH_ALEN);
|
|
memset(&iter_data->mask, 0xff, ETH_ALEN);
|
|
@@ -1205,6 +1204,8 @@ static int ath9k_add_interface(struct ieee80211_hw *hw,
|
|
list_add_tail(&avp->list, &avp->chanctx->vifs);
|
|
list_add_tail(&avp->list, &avp->chanctx->vifs);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ath9k_calculate_summary_state(sc, avp->chanctx);
|
|
|
|
+
|
|
ath9k_assign_hw_queues(hw, vif);
|
|
ath9k_assign_hw_queues(hw, vif);
|
|
|
|
|
|
an->sc = sc;
|
|
an->sc = sc;
|
|
@@ -1274,6 +1275,8 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw,
|
|
|
|
|
|
ath_tx_node_cleanup(sc, &avp->mcast_node);
|
|
ath_tx_node_cleanup(sc, &avp->mcast_node);
|
|
|
|
|
|
|
|
+ ath9k_calculate_summary_state(sc, avp->chanctx);
|
|
|
|
+
|
|
mutex_unlock(&sc->mutex);
|
|
mutex_unlock(&sc->mutex);
|
|
}
|
|
}
|
|
|
|
|