On Wed, 2019-06-12 at 10:26 +0200, Lorenzo Bianconi wrote: > > Driver should update peer's bssid and bss information when > > state transition changes. > > > > Signed-off-by: Ryder Lee <ryder.lee@xxxxxxxxxxxx> > > --- > > .../net/wireless/mediatek/mt76/mt7615/main.c | 5 +- > > .../net/wireless/mediatek/mt76/mt7615/mcu.c | 49 ++++++++++--------- > > 2 files changed, 27 insertions(+), 27 deletions(-) > > > > [...] > > > diff --git a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c > > index e82086eb8aa4..8fc12cd37906 100644 > > --- a/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c > > +++ b/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c > > @@ -741,17 +741,6 @@ int mt7615_mcu_set_bss_info(struct mt7615_dev *dev, > > u8 *buf, *data, tx_wlan_idx = 0; > > struct req_hdr *hdr; > > > > - if (en) { > > - len += sizeof(struct bss_info_omac); > > - features |= BIT(BSS_INFO_OMAC); > > - if (mvif->omac_idx > EXT_BSSID_START) { > > - len += sizeof(struct bss_info_ext_bss); > > - features |= BIT(BSS_INFO_EXT_BSS); > > - ntlv++; > > - } > > - ntlv++; > > - } > > - > > switch (vif->type) { > > case NL80211_IFTYPE_AP: > > case NL80211_IFTYPE_MESH_POINT: > > @@ -759,22 +748,23 @@ int mt7615_mcu_set_bss_info(struct mt7615_dev *dev, > > conn_type = CONNECTION_INFRA_AP; > > break; > > case NL80211_IFTYPE_STATION: { > > - struct ieee80211_sta *sta; > > - struct mt7615_sta *msta; > > - > > - rcu_read_lock(); > > - > > - sta = ieee80211_find_sta(vif, vif->bss_conf.bssid); > > - if (!sta) { > > + /* TODO: enable BSS_INFO_UAPSD & BSS_INFO_PM */ > > + if (en) { > > + struct ieee80211_sta *sta; > > + struct mt7615_sta *msta; > > + > > + rcu_read_lock(); > > + sta = ieee80211_find_sta(vif, vif->bss_conf.bssid); > > + if (!sta) { > > + rcu_read_unlock(); > > + return -EINVAL; > > + } > > + > > + msta = (struct mt7615_sta *)sta->drv_priv; > > + tx_wlan_idx = msta->wcid.idx; > > rcu_read_unlock(); > > - return -EINVAL; > > } > > - > > - msta = (struct mt7615_sta *)sta->drv_priv; > > - tx_wlan_idx = msta->wcid.idx; > > conn_type = CONNECTION_INFRA_STA; > > - > > - rcu_read_unlock(); > > break; > > } > > default: > > @@ -782,6 +772,17 @@ int mt7615_mcu_set_bss_info(struct mt7615_dev *dev, > > break; > > } > > > > + if (en) { > > + len += sizeof(struct bss_info_omac); > > + features |= BIT(BSS_INFO_OMAC); > > + if (mvif->omac_idx > EXT_BSSID_START) { > > + len += sizeof(struct bss_info_ext_bss); > > + features |= BIT(BSS_INFO_EXT_BSS); > > + ntlv++; > > + } > > + ntlv++; > > + } > > What did you move this chunk down? Ah, my bad. I originally planned to add other conditions and it may change 'en' so moved these stuff behind them. Anyway I forgot to remove this part. Will fix it Ryder. > Regards, > Lorenzo > > > + > > buf = kzalloc(len, GFP_KERNEL); > > if (!buf) > > return -ENOMEM; > > -- > > 2.18.0 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-mediatek