Message ID | 20200206032801.25835-1-yhchuang@realtek.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | [v2] rtw88: Fix incorrect beamformee role setting | expand |
On Thu, Feb 6, 2020 at 11:28 AM <yhchuang@realtek.com> wrote: > > From: Tzu-En Huang <tehuang@realtek.com> > > In associating and configuring beamformee, bfee->role is not > correctly set before rtw_chip_ops::config_bfee(). > Fix it by setting it correctly. > > Fixes: 0bd9557341b7 ("rtw88: Enable 802.11ac beamformee support") > Signed-off-by: Tzu-En Huang <tehuang@realtek.com> > Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> > --- > > v1 -> v2 > * cannot put bfee->role = RTW_BFEE_NONE after out_unlock > put it enclosed by else > > drivers/net/wireless/realtek/rtw88/bf.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/wireless/realtek/rtw88/bf.c b/drivers/net/wireless/realtek/rtw88/bf.c > index fda771d23f71..073c754e9e70 100644 > --- a/drivers/net/wireless/realtek/rtw88/bf.c > +++ b/drivers/net/wireless/realtek/rtw88/bf.c > @@ -99,10 +98,11 @@ void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, > } > > chip->ops->config_bfee(rtwdev, rtwvif, bfee, true); > + } else { > + bfee->role = RTW_BFEE_NONE; > } > Do we really need this `else` section? The bfee->role is only for `config_bfee`, right? If we don't need to config_bfee for RTW_BFEE_NONE, then we don't need the `else` part. Chris > out_unlock: > - bfee->role = bfee_role; > rcu_read_unlock(); > } > > -- > 2.17.1 >
> On Thu, Feb 6, 2020 at 11:28 AM <yhchuang@realtek.com> wrote: > > > > From: Tzu-En Huang <tehuang@realtek.com> > > > > In associating and configuring beamformee, bfee->role is not > > correctly set before rtw_chip_ops::config_bfee(). > > Fix it by setting it correctly. > > > > Fixes: 0bd9557341b7 ("rtw88: Enable 802.11ac beamformee support") > > Signed-off-by: Tzu-En Huang <tehuang@realtek.com> > > Signed-off-by: Yan-Hsuan Chuang <yhchuang@realtek.com> > > --- > > > > v1 -> v2 > > * cannot put bfee->role = RTW_BFEE_NONE after out_unlock > > put it enclosed by else > > > > drivers/net/wireless/realtek/rtw88/bf.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/net/wireless/realtek/rtw88/bf.c > b/drivers/net/wireless/realtek/rtw88/bf.c > > index fda771d23f71..073c754e9e70 100644 > > --- a/drivers/net/wireless/realtek/rtw88/bf.c > > +++ b/drivers/net/wireless/realtek/rtw88/bf.c > > @@ -99,10 +98,11 @@ void rtw_bf_assoc(struct rtw_dev *rtwdev, struct > ieee80211_vif *vif, > > } > > > > chip->ops->config_bfee(rtwdev, rtwvif, bfee, true); > > + } else { > > + bfee->role = RTW_BFEE_NONE; > > } > > > > Do we really need this `else` section? The bfee->role is only for > `config_bfee`, right? If we don't > need to config_bfee for RTW_BFEE_NONE, then we don't need the `else` > part. > Right, it looks unnecessary to set it to NONE while disassoc will set it. So I think we can just skip this "else" statement, will send a v3 later. Thanks. Yan-Hsuan
diff --git a/drivers/net/wireless/realtek/rtw88/bf.c b/drivers/net/wireless/realtek/rtw88/bf.c index fda771d23f71..073c754e9e70 100644 --- a/drivers/net/wireless/realtek/rtw88/bf.c +++ b/drivers/net/wireless/realtek/rtw88/bf.c @@ -41,7 +41,6 @@ void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, struct ieee80211_sta_vht_cap *ic_vht_cap; const u8 *bssid = bss_conf->bssid; u32 sound_dim; - u8 bfee_role = RTW_BFEE_NONE; u8 i; if (!(chip->band & RTW_BAND_5G)) @@ -67,7 +66,7 @@ void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, } ether_addr_copy(bfee->mac_addr, bssid); - bfee_role = RTW_BFEE_MU; + bfee->role = RTW_BFEE_MU; bfee->p_aid = (bssid[5] << 1) | (bssid[4] >> 7); bfee->aid = bss_conf->aid; bfinfo->bfer_mu_cnt++; @@ -85,7 +84,7 @@ void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, sound_dim >>= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; ether_addr_copy(bfee->mac_addr, bssid); - bfee_role = RTW_BFEE_SU; + bfee->role = RTW_BFEE_SU; bfee->sound_dim = (u8)sound_dim; bfee->g_id = 0; bfee->p_aid = (bssid[5] << 1) | (bssid[4] >> 7); @@ -99,10 +98,11 @@ void rtw_bf_assoc(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, } chip->ops->config_bfee(rtwdev, rtwvif, bfee, true); + } else { + bfee->role = RTW_BFEE_NONE; } out_unlock: - bfee->role = bfee_role; rcu_read_unlock(); }