summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHouston Hoffman <hhoffman@codeaurora.org>2017-02-24 13:34:21 -0800
committerqcabuildsw <qcabuildsw@localhost>2017-02-27 21:45:23 -0800
commitd3784b6cbb4388cac8d8c69b8bc358db2803ec8a (patch)
tree373b3d891bf547ec221dbd562e68951be67a9e49
parentb9815e005cda9b83559ba1735496a0e9d99b66ca (diff)
qcacmn: Remove thread unsafe ce_debug varialbes
The use of these static variables could lead to an skb double free. Change-Id: I42ebff2c5a713350922e21f4d581c3b8935507e3 CRs-Fixed: 2011773
-rw-r--r--hif/src/ce/ce_service.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/hif/src/ce/ce_service.c b/hif/src/ce/ce_service.c
index d868f83fa94a..7ef2c241088a 100644
--- a/hif/src/ce/ce_service.c
+++ b/hif/src/ce/ce_service.c
@@ -1160,12 +1160,6 @@ unsigned int ce_recv_entries_done(struct CE_handle *copyeng)
return nentries;
}
-/* Debug support */
-void *ce_debug_cmplrn_context; /* completed recv next context */
-void *ce_debug_cnclsn_context; /* cancel send next context */
-void *ce_debug_rvkrn_context; /* revoke receive next context */
-void *ce_debug_cmplsn_context; /* completed send next context */
-
/*
* Guts of ce_completed_recv_next.
* The caller takes responsibility for any necessary locking.
@@ -1224,9 +1218,9 @@ ce_completed_recv_next_nolock(struct CE_state *CE_state,
*per_CE_contextp = CE_state->recv_context;
}
- ce_debug_cmplrn_context = dest_ring->per_transfer_context[sw_index];
if (per_transfer_contextp) {
- *per_transfer_contextp = ce_debug_cmplrn_context;
+ *per_transfer_contextp =
+ dest_ring->per_transfer_context[sw_index];
}
dest_ring->per_transfer_context[sw_index] = 0; /* sanity */
@@ -1299,10 +1293,9 @@ ce_revoke_recv_next(struct CE_handle *copyeng,
*per_CE_contextp = CE_state->recv_context;
}
- ce_debug_rvkrn_context =
- dest_ring->per_transfer_context[sw_index];
if (per_transfer_contextp) {
- *per_transfer_contextp = ce_debug_rvkrn_context;
+ *per_transfer_contextp =
+ dest_ring->per_transfer_context[sw_index];
}
dest_ring->per_transfer_context[sw_index] = 0; /* sanity */
@@ -1394,10 +1387,9 @@ ce_completed_send_next_nolock(struct CE_state *CE_state,
*per_CE_contextp = CE_state->send_context;
}
- ce_debug_cmplsn_context =
- src_ring->per_transfer_context[sw_index];
if (per_transfer_contextp) {
- *per_transfer_contextp = ce_debug_cmplsn_context;
+ *per_transfer_contextp =
+ src_ring->per_transfer_context[sw_index];
}
src_ring->per_transfer_context[sw_index] = 0; /* sanity */
@@ -1460,10 +1452,9 @@ ce_cancel_send_next(struct CE_handle *copyeng,
*per_CE_contextp = CE_state->send_context;
}
- ce_debug_cnclsn_context =
- src_ring->per_transfer_context[sw_index];
if (per_transfer_contextp) {
- *per_transfer_contextp = ce_debug_cnclsn_context;
+ *per_transfer_contextp =
+ src_ring->per_transfer_context[sw_index];
}
src_ring->per_transfer_context[sw_index] = 0; /* sanity */