Commit 10a35c22 authored by Johannes Berg's avatar Johannes Berg
Browse files

mac80211: allow SMPS requests only in client mode



The code currently allows this for AP mode, but then ignores
it. Clarify that since the spec doesn't allow it in AP mode.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210618133832.0465f8bcbe32.Iba39fc559ecfa887be00a5f3beabd881e5c86e54@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent e41eb3e4
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@
 * Copyright 2007, Michael Wu <flamingice@sourmilk.net>
 * Copyright 2007-2010, Intel Corporation
 * Copyright 2017	Intel Deutschland GmbH
 * Copyright(c) 2020 Intel Corporation
 * Copyright(c) 2020-2021 Intel Corporation
 */

#include <linux/ieee80211.h>
@@ -555,17 +555,15 @@ void ieee80211_request_smps(struct ieee80211_vif *vif,
{
	struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);

	if (WARN_ON_ONCE(vif->type != NL80211_IFTYPE_STATION &&
			 vif->type != NL80211_IFTYPE_AP))
	if (WARN_ON_ONCE(vif->type != NL80211_IFTYPE_STATION))
		return;

	if (vif->type == NL80211_IFTYPE_STATION) {
	if (sdata->u.mgd.driver_smps_mode == smps_mode)
		return;

	sdata->u.mgd.driver_smps_mode = smps_mode;
	ieee80211_queue_work(&sdata->local->hw,
			     &sdata->u.mgd.request_smps_work);
}
}
/* this might change ... don't want non-open drivers using it */
EXPORT_SYMBOL_GPL(ieee80211_request_smps);