diff options
| author | Himanshu Agarwal <himanaga@codeaurora.org> | 2017-02-20 19:14:17 +0530 |
|---|---|---|
| committer | spuligil <spuligil@codeaurora.org> | 2017-04-15 12:50:33 -0700 |
| commit | f8d6afcd30efef843482a1fa894e3ff87b82aea6 (patch) | |
| tree | 87b6e1a289dc098e513b850115fc24dc7f5c2be6 | |
| parent | f7b7d5e3d9711b9187e9482d533e8c13a062c4d7 (diff) | |
qcacld-3.0: Add support to add memory tracking in tx path
Add support to add memory tracking in tx path in WLAN driver using
already present infrastructure for memory tracking.
Change-Id: I6a2c9890e0af1fd51c4e2dfcded68f0075a3a4ef
CRs-Fixed: 2025668
| -rw-r--r-- | core/dp/txrx/ol_rx_fwd.c | 7 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_softap_tx_rx.c | 10 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_tx_rx.c | 14 |
3 files changed, 20 insertions, 11 deletions
diff --git a/core/dp/txrx/ol_rx_fwd.c b/core/dp/txrx/ol_rx_fwd.c index 929df53475ae..843ff86c329e 100644 --- a/core/dp/txrx/ol_rx_fwd.c +++ b/core/dp/txrx/ol_rx_fwd.c @@ -234,13 +234,6 @@ ol_rx_fwd_check(struct ol_txrx_vdev_t *vdev, copy = qdf_nbuf_copy(msdu); if (copy) { - /* Since this is a private copy of skb - * and part of skb tracking table, so - * mark it to make sure that this skb - * is getting deleted from tracking - * table on receiving tx completion. - */ - QDF_NBUF_CB_TX_IS_PACKET_PRIV(copy) = 1; ol_rx_fwd_to_tx(tx_vdev, copy); tx_vdev->fwd_tx_packets++; } diff --git a/core/hdd/src/wlan_hdd_softap_tx_rx.c b/core/hdd/src/wlan_hdd_softap_tx_rx.c index 9efb1b499325..0f03ea9fb631 100644 --- a/core/hdd/src/wlan_hdd_softap_tx_rx.c +++ b/core/hdd/src/wlan_hdd_softap_tx_rx.c @@ -381,6 +381,12 @@ static int __hdd_softap_hard_start_xmit(struct sk_buff *skb, } #endif + /* + * Add SKB to internal tracking table before further processing + * in WLAN driver. + */ + qdf_net_buf_debug_acquire_skb(skb, __FILE__, __LINE__); + pAdapter->stats.tx_bytes += skb->len; if (qdf_nbuf_is_tso(skb)) @@ -410,12 +416,14 @@ static int __hdd_softap_hard_start_xmit(struct sk_buff *skb, "%s: Failed to send packet to txrx for staid:%d", __func__, STAId); ++pAdapter->hdd_stats.hddTxRxStats.txXmitDroppedAC[ac]; - goto drop_pkt; + goto drop_pkt_and_release_skb; } netif_trans_update(dev); return NETDEV_TX_OK; +drop_pkt_and_release_skb: + qdf_net_buf_debug_release_skb(skb); drop_pkt: DPTRACE(qdf_dp_trace(skb, QDF_DP_TRACE_DROP_PACKET_RECORD, diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c index b22697de2ba3..e5f0bd647ea2 100644 --- a/core/hdd/src/wlan_hdd_tx_rx.c +++ b/core/hdd/src/wlan_hdd_tx_rx.c @@ -513,6 +513,12 @@ static int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) } /* + * Add SKB to internal tracking table before further processing + * in WLAN driver. + */ + qdf_net_buf_debug_acquire_skb(skb, __FILE__, __LINE__); + + /* * user priority from IP header, which is already extracted and set from * select_queue call back function */ @@ -635,7 +641,7 @@ static int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) "%s: station is not connected. drop the pkt", __func__); ++pAdapter->hdd_stats.hddTxRxStats.txXmitDroppedAC[ac]; - goto drop_pkt; + goto drop_pkt_and_release_skb; } /* @@ -646,7 +652,7 @@ static int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) "%s: TX function not registered by the data path", __func__); ++pAdapter->hdd_stats.hddTxRxStats.txXmitDroppedAC[ac]; - goto drop_pkt; + goto drop_pkt_and_release_skb; } if (pAdapter->tx_fn(ol_txrx_get_vdev_by_sta_id(STAId), @@ -655,13 +661,15 @@ static int __hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) "%s: Failed to send packet to txrx for staid: %d", __func__, STAId); ++pAdapter->hdd_stats.hddTxRxStats.txXmitDroppedAC[ac]; - goto drop_pkt; + goto drop_pkt_and_release_skb; } netif_trans_update(dev); return NETDEV_TX_OK; +drop_pkt_and_release_skb: + qdf_net_buf_debug_release_skb(skb); drop_pkt: if (skb) { |
