Re: [PATCH] mac80211: fix TX status reporting for ieee80211s
From: Johannes Berg
Date: Mon Sep 03 2018 - 04:33:43 EST
On Fri, 2018-08-31 at 15:12 +0800, Yuan-Chi Pang wrote:
> void ieee80211s_init(void);
> void ieee80211s_update_metric(struct ieee80211_local *local,
> - struct sta_info *sta, struct sk_buff *skb);
> + struct sta_info *sta, struct ieee80211_tx_status *st);
please keep things indented properly
> void ieee80211s_update_metric(struct ieee80211_local *local,
> - struct sta_info *sta, struct sk_buff *skb)
> + struct sta_info *sta, struct ieee80211_tx_status *st)
and maybe fix the indentation here while you're changing it
> {
> - struct ieee80211_tx_info *txinfo = IEEE80211_SKB_CB(skb);
> - struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
> + struct ieee80211_tx_info *txinfo = st->info;
> int failed;
>
> - if (!ieee80211_is_data(hdr->frame_control))
> - return;
Why are you removing this condition? You didn't say anything about that.
I sort of see why (you no longer even have the skb/hdr), but you should
indicate why this is OK.
> rate_control_tx_status(local, sband, status);
> + if (ieee80211_vif_is_mesh(&sta->sdata->vif))
> + ieee80211s_update_metric(local, sta, status)
This is the only "real" change I guess, some more description about it
would be good.
I can sort of reverse engineer it from your commit log, but you should
be more explicit.
johannes