Skip to content

Commit 7182ea0

Browse files
kitakar5525StollD
authored andcommitted
mwifiex: cfg80211: add allow_ps_mode module parameter
Add allow_ps_mode module parameter to allow ps_mode if needed. Disallowed by default. Reason for returning negative value (-1) is to inform userspace tools like iw command that setting power_save to be enabled is not permitted. Examlpe run: $ sudo iw dev mlan0 set power_save on command failed: Operation not permitted (-1)
1 parent 5418136 commit 7182ea0

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

‎drivers/net/wireless/marvell/mwifiex/cfg80211.c‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
static char *reg_alpha2;
2626
module_param(reg_alpha2, charp, 0);
2727

28+
static bool allow_ps_mode;
29+
module_param(allow_ps_mode, bool, 0444);
30+
MODULE_PARM_DESC(allow_ps_mode,
31+
"allow WiFi power management to be enabled. (default: disallowed)");
32+
2833
static const struct ieee80211_iface_limit mwifiex_ap_sta_limits[] = {
2934
{
3035
.max = 3, .types = BIT(NL80211_IFTYPE_STATION) |
@@ -439,6 +444,19 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
439444

440445
ps_mode = enabled;
441446

447+
/* Allow ps_mode to be enabled only when allow_ps_mode is set
448+
* (but always allow ps_mode to be disabled in case it gets enabled
449+
* for unknown reason and you want to disable it) */
450+
if (ps_mode && !allow_ps_mode) {
451+
dev_info(priv->adapter->dev,
452+
"Request to enable ps_mode received but it's disallowed "
453+
"by module parameter. Rejecting the request.\n");
454+
455+
/* Return negative value to inform userspace tools that setting
456+
* power_save to be enabled is not permitted. */
457+
return -1;
458+
}
459+
442460
return mwifiex_drv_set_power(priv, &ps_mode);
443461
}
444462

0 commit comments

Comments
 (0)