summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirav Shah <nnshah@qti.qualcomm.com>2015-05-27 18:10:18 +0530
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-05-29 15:06:25 +0530
commitea5c28d1ed54593c1d3c28e32031786ea8283d1a (patch)
treee1e727ce178ff0f9fba7f949fa912812d9ea4154
parent123ca4b1f88dd88cf297d2bc1c56bc5d57111ee5 (diff)
qcacld: Always update group credit based on vdev
Always update group credit based on vdev to avoid accessing direct tx queue. CRs-Fixed: 843401 Change-Id: I67945a166f78e604e3fcbd825160029c96716aef
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_tx_send.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx_send.c b/CORE/CLD_TXRX/TXRX/ol_tx_send.c
index cf64115daa06..28b3b8a458de 100644
--- a/CORE/CLD_TXRX/TXRX/ol_tx_send.c
+++ b/CORE/CLD_TXRX/TXRX/ol_tx_send.c
@@ -609,25 +609,20 @@ ol_tx_desc_update_group_credit(ol_txrx_pdev_handle pdev, u_int16_t tx_desc_id,
uint8_t i, is_member;
uint16_t vdev_id_mask;
struct ol_tx_desc_t *tx_desc;
- struct ol_tx_frms_queue_t *txq;
union ol_tx_desc_list_elem_t *td_array = pdev->tx_desc.array;
tx_desc = &td_array[tx_desc_id].tx_desc;
- if (status != htt_tx_status_peer_del) {
- txq = (struct ol_tx_frms_queue_t *)(tx_desc->txq);
- ol_tx_txq_group_credit_update(pdev, txq, credit, absolute);
- } else {
- for (i = 0; i < OL_TX_MAX_TXQ_GROUPS; i++) {
- vdev_id_mask =
+
+ for (i = 0; i < OL_TX_MAX_TXQ_GROUPS; i++) {
+ vdev_id_mask =
OL_TXQ_GROUP_VDEV_ID_MASK_GET(pdev->txq_grps[i].membership);
- is_member = OL_TXQ_GROUP_VDEV_ID_BIT_MASK_GET(vdev_id_mask,
- tx_desc->vdev->vdev_id);
- if (is_member) {
- ol_txrx_update_group_credit(&pdev->txq_grps[i],
- credit, absolute);
- break;
- }
- }
+ is_member = OL_TXQ_GROUP_VDEV_ID_BIT_MASK_GET(vdev_id_mask,
+ tx_desc->vdev->vdev_id);
+ if (is_member) {
+ ol_txrx_update_group_credit(&pdev->txq_grps[i],
+ credit, absolute);
+ break;
+ }
}
OL_TX_UPDATE_GROUP_CREDIT_STATS(pdev);
}