On Tue, Sep 27, 2022 at 2:38 PM Felix Fietkau <nbd@xxxxxxxx> wrote: > > mt7915 and newer need to report the rate_info that's stored in wcid->rate, > since they don't fill info->status.rates. > > Cc: Jonas Jelonek <jelonek.jonas@xxxxxxxxx> > Reported-by: Mikhail Gavrilov <mikhail.v.gavrilov@xxxxxxxxx> > Link: https://lore.kernel.org/all/CABXGCsP0znm9pS-MiKtyxTXR7XiyFVqen0qzNpicGHDZKCzbwg@xxxxxxxxxxxxxx/ > Fixes: 44fa75f207d8 ("mac80211: extend current rate control tx status API") > Signed-off-by: Felix Fietkau <nbd@xxxxxxxx> > --- > drivers/net/wireless/mediatek/mt76/tx.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/mediatek/mt76/tx.c b/drivers/net/wireless/mediatek/mt76/tx.c > index e67cc7909bce..6c054850363f 100644 > --- a/drivers/net/wireless/mediatek/mt76/tx.c > +++ b/drivers/net/wireless/mediatek/mt76/tx.c > @@ -60,14 +60,20 @@ mt76_tx_status_unlock(struct mt76_dev *dev, struct sk_buff_head *list) > .skb = skb, > .info = IEEE80211_SKB_CB(skb), > }; > + struct ieee80211_rate_status rs = {}; > struct mt76_tx_cb *cb = mt76_tx_skb_cb(skb); > struct mt76_wcid *wcid; > > wcid = rcu_dereference(dev->wcid[cb->wcid]); > if (wcid) { > status.sta = wcid_to_sta(wcid); > - status.rates = NULL; > - status.n_rates = 0; > + if (status.sta && (wcid->rate.flags || wcid->rate.legacy)) { > + rs.rate_idx = wcid->rate; > + status.rates = &rs; > + status.n_rates = 1; > + } else { > + status.n_rates = 0; > + } > } > > hw = mt76_tx_status_get_hw(dev, skb); > -- > 2.36.1 > Thanks, the issue is solved. Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@xxxxxxxxx> -- Best Regards, Mike Gavrilov.