wifi: mac80211: do not check BSS color collision in certain cases
Do not check BSS color collision in following cases 1. already under a color change 2. color change is disabled Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com> Link: https://patch.msgid.link/20240705074346.11228-1-michael-cy.lee@mediatek.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
7cd4456355
commit
4044b23781
@ -3358,6 +3358,7 @@ static void
|
||||
ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
|
||||
{
|
||||
struct ieee80211_mgmt *mgmt = (void *)rx->skb->data;
|
||||
struct ieee80211_bss_conf *bss_conf;
|
||||
const struct element *ie;
|
||||
size_t baselen;
|
||||
|
||||
@ -3368,7 +3369,9 @@ ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
|
||||
if (ieee80211_hw_check(&rx->local->hw, DETECTS_COLOR_COLLISION))
|
||||
return;
|
||||
|
||||
if (rx->link->conf->csa_active)
|
||||
bss_conf = rx->link->conf;
|
||||
if (bss_conf->csa_active || bss_conf->color_change_active ||
|
||||
!bss_conf->he_bss_color.enabled)
|
||||
return;
|
||||
|
||||
baselen = mgmt->u.beacon.variable - rx->skb->data;
|
||||
@ -3380,7 +3383,6 @@ ieee80211_rx_check_bss_color_collision(struct ieee80211_rx_data *rx)
|
||||
rx->skb->len - baselen);
|
||||
if (ie && ie->datalen >= sizeof(struct ieee80211_he_operation) &&
|
||||
ie->datalen >= ieee80211_he_oper_size(ie->data + 1)) {
|
||||
struct ieee80211_bss_conf *bss_conf = rx->link->conf;
|
||||
const struct ieee80211_he_operation *he_oper;
|
||||
u8 color;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user