cfg80211: allow leaving MU-MIMO monitor configuration unchanged

When changing monitor parameters, not setting the MU-MIMO attributes
should mean that they're not changed - it's documented that to turn
the feature off it's necessary to set all-zero group membership and
an invalid follow-address. This isn't implemented.

Fix this by making the parameters pointers, stop reusing the macaddr
struct member, and documenting that NULL pointers mean unchanged.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg
2017-04-12 10:43:49 +02:00
parent 30841f5cde
commit b0265024b8
3 changed files with 14 additions and 13 deletions

View File

@@ -2832,8 +2832,7 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
(mumimo_groups[VHT_MUMIMO_GROUPS_DATA_LEN - 1] & BIT(0)))
return -EINVAL;
memcpy(params.vht_mumimo_groups, mumimo_groups,
VHT_MUMIMO_GROUPS_DATA_LEN);
params.vht_mumimo_groups = mumimo_groups;
change = true;
}
@@ -2843,9 +2842,8 @@ static int nl80211_set_interface(struct sk_buff *skb, struct genl_info *info)
if (!wiphy_ext_feature_isset(&rdev->wiphy, cap_flag))
return -EOPNOTSUPP;
nla_memcpy(params.macaddr,
info->attrs[NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR],
ETH_ALEN);
params.vht_mumimo_follow_addr =
nla_data(info->attrs[NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR]);
change = true;
}