@@ -630,13 +630,13 @@ void ieee80211_recalc_ps(struct ieee80211_local *local, s32 latency)
list_for_each_entry(sdata, &local->interfaces, list) {
if (!ieee80211_sdata_running(sdata))
continue;
- if (sdata->vif.type == NL80211_IFTYPE_AP) {
- /* If an AP vif is found, then disable PS
- * by setting the count to zero thereby setting
- * ps_sdata to NULL.
+ if ((sdata->vif.type == NL80211_IFTYPE_AP) ||
+ (sdata->vif.type == NL80211_IFTYPE_MONITOR)) {
+ /* If an AP/monitor vif is found, then disable PS
+ * by setting ps_sdata to NULL.
*/
- count = 0;
- break;
+ local->ps_sdata = NULL;
+ goto change;
}
if (sdata->vif.type != NL80211_IFTYPE_STATION)
continue;