diff options
| author | Houston Hoffman <hhoffman@codeaurora.org> | 2017-02-24 13:34:21 -0800 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-27 21:45:23 -0800 |
| commit | d3784b6cbb4388cac8d8c69b8bc358db2803ec8a (patch) | |
| tree | 373b3d891bf547ec221dbd562e68951be67a9e49 | |
| parent | b9815e005cda9b83559ba1735496a0e9d99b66ca (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.c | 25 |
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 */ |
