@@ -339,6 +339,16 @@ static void ieee80211_recalc_smps_work(struct work_struct *work)
mutex_unlock(&local->iflist_mtx);
}
+static void ieee80211_rate_notify_work(struct work_struct *work)
+{
+ struct ieee80211_local *local =
+ container_of(work, struct ieee80211_local, rate_notify);
+
+ mutex_lock(&local->iflist_mtx);
+ ieee80211_cqm_bitrate_notify(local);
+ mutex_unlock(&local->iflist_mtx);
+}
+
#ifdef CONFIG_INET
static int ieee80211_ifa_changed(struct notifier_block *nb,
unsigned long data, void *arg)
@@ -565,6 +575,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
INIT_WORK(&local->reconfig_filter, ieee80211_reconfig_filter);
INIT_WORK(&local->recalc_smps, ieee80211_recalc_smps_work);
+ INIT_WORK(&local->rate_notify, ieee80211_rate_notify_work);
local->smps_mode = IEEE80211_SMPS_OFF;
INIT_WORK(&local->dynamic_ps_enable_work,