mwifiex: correct TX byte count statistics
The skb is modified in sending the TX packet. Save the original packet length to a variable so that we can get the correct statistics update. Signed-off-by: Ujjal Roy <royujjal@gmail.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
f49c6e8142
Коммит
a1ed484960
|
@ -222,6 +222,7 @@ mwifiex_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
|
|||
tx_info = MWIFIEX_SKB_TXCB(skb);
|
||||
tx_info->bss_num = priv->bss_num;
|
||||
tx_info->bss_type = priv->bss_type;
|
||||
tx_info->pkt_len = pkt_len;
|
||||
|
||||
mwifiex_form_mgmt_frame(skb, buf, len);
|
||||
mwifiex_queue_tx_pkt(priv, skb);
|
||||
|
|
|
@ -130,6 +130,7 @@ struct mwifiex_txinfo {
|
|||
u8 flags;
|
||||
u8 bss_num;
|
||||
u8 bss_type;
|
||||
u32 pkt_len;
|
||||
};
|
||||
|
||||
enum mwifiex_wmm_ac_e {
|
||||
|
|
|
@ -648,6 +648,7 @@ mwifiex_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
tx_info = MWIFIEX_SKB_TXCB(skb);
|
||||
tx_info->bss_num = priv->bss_num;
|
||||
tx_info->bss_type = priv->bss_type;
|
||||
tx_info->pkt_len = skb->len;
|
||||
|
||||
/* Record the current time the packet was queued; used to
|
||||
* determine the amount of time the packet was queued in
|
||||
|
|
|
@ -148,6 +148,7 @@ int mwifiex_send_null_packet(struct mwifiex_private *priv, u8 flags)
|
|||
tx_info = MWIFIEX_SKB_TXCB(skb);
|
||||
tx_info->bss_num = priv->bss_num;
|
||||
tx_info->bss_type = priv->bss_type;
|
||||
tx_info->pkt_len = data_len - (sizeof(struct txpd) + INTF_HEADER_LEN);
|
||||
skb_reserve(skb, sizeof(struct txpd) + INTF_HEADER_LEN);
|
||||
skb_push(skb, sizeof(struct txpd));
|
||||
|
||||
|
|
|
@ -175,7 +175,7 @@ int mwifiex_write_data_complete(struct mwifiex_adapter *adapter,
|
|||
mwifiex_set_trans_start(priv->netdev);
|
||||
if (!status) {
|
||||
priv->stats.tx_packets++;
|
||||
priv->stats.tx_bytes += skb->len;
|
||||
priv->stats.tx_bytes += tx_info->pkt_len;
|
||||
if (priv->tx_timeout_cnt)
|
||||
priv->tx_timeout_cnt = 0;
|
||||
} else {
|
||||
|
|
Загрузка…
Ссылка в новой задаче