Message ID | 20231206024911.7668-1-allen.ye@mediatek.com |
---|---|
State | Superseded |
Headers | show |
Series | wifi: mac80211: Update bssid indicator with real BSS numbers | expand |
Allen Ye <allen.ye@mediatek.com> writes: > From: "Allen.Ye" <allen.ye@mediatek.com> > > The cnt member in mbssid is the count of total number of MBSSID elements > instead of BSSID. Therefore, we fix this by reading the MaxBSSID Indicator > field directly. > > Signed-off-by: Evelyn.Tsai <evelyn.tsai@mediatek.com> > Signed-off-by: Money.Wang <money.wang@mediatek.com> > Signed-off-by: Allen.Ye <allen.ye@mediatek.com> All the names, both in From and s-o-b, use '.' instead of space in names.
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 606b1b2e4123..f90bcd59f85a 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -1164,9 +1164,11 @@ ieee80211_assign_beacon(struct ieee80211_sub_if_data *sdata, /* copy in optional mbssid_ies */ if (mbssid) { u8 *pos = new->tail + new->tail_len; + const struct element *mbssid_elem; new->mbssid_ies = (void *)pos; pos += struct_size(new->mbssid_ies, elem, mbssid->cnt); + mbssid_elem = (const struct element *)pos; pos += ieee80211_copy_mbssid_beacon(pos, new->mbssid_ies, mbssid); if (rnr) { @@ -1175,8 +1177,7 @@ ieee80211_assign_beacon(struct ieee80211_sub_if_data *sdata, ieee80211_copy_rnr_beacon(pos, new->rnr_ies, rnr); } /* update bssid_indicator */ - link_conf->bssid_indicator = - ilog2(__roundup_pow_of_two(mbssid->cnt + 1)); + link_conf->bssid_indicator = mbssid_elem->data[0]; } if (csa) {