UPSTREAM: wifi: nl80211: enable setting the link address at new station
Since for an MLD station the default link is added together with the add station command, allow also setting the link MAC address. Otherwise, it is needed to use the modify link API only for setting the link MAC address. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Bug: 253289327 Change-Id: I4eb0da6b2b666d4b2bcb53f810cda471278c575b (cherry picked from commit c0d6701261dbfa29902ca64c7b57b1cc5f0c2533) Signed-off-by: Kiran Kumar Lokere <quic_klokere@quicinc.com>
This commit is contained in:
committed by
Todd Kjos
parent
d104fc76c4
commit
e75dfe1943
@@ -7083,7 +7083,25 @@ static int nl80211_new_station(struct sk_buff *skb, struct genl_info *info)
|
||||
params.link_sta_params.link_id =
|
||||
nl80211_link_id_or_invalid(info->attrs);
|
||||
|
||||
mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
|
||||
if (info->attrs[NL80211_ATTR_MLD_ADDR]) {
|
||||
/* If MLD_ADDR attribute is set then this is an MLD station
|
||||
* and the MLD_ADDR attribute holds the MLD address and the
|
||||
* MAC attribute holds for the LINK address.
|
||||
* In that case, the link_id is also expected to be valid.
|
||||
*/
|
||||
if (params.link_sta_params.link_id < 0)
|
||||
return -EINVAL;
|
||||
|
||||
mac_addr = nla_data(info->attrs[NL80211_ATTR_MLD_ADDR]);
|
||||
params.link_sta_params.mld_mac = mac_addr;
|
||||
params.link_sta_params.link_mac =
|
||||
nla_data(info->attrs[NL80211_ATTR_MAC]);
|
||||
if (!is_valid_ether_addr(params.link_sta_params.link_mac))
|
||||
return -EINVAL;
|
||||
} else {
|
||||
mac_addr = nla_data(info->attrs[NL80211_ATTR_MAC]);
|
||||
}
|
||||
|
||||
params.link_sta_params.supported_rates =
|
||||
nla_data(info->attrs[NL80211_ATTR_STA_SUPPORTED_RATES]);
|
||||
params.link_sta_params.supported_rates_len =
|
||||
|
||||
Reference in New Issue
Block a user