qcacld-3.0: Do not lock to free all packets to avoid watchdog bark

Propagation from qcacld-2.0 to qcacld-3.0

Do not take single lock to free all TLSHIM packets
to avoid watchdog bark during driver unload.

CRs-Fixed: 934555
Change-Id: Iebfb449bd8174bc27207d33073c84a8f11d6e490
This commit is contained in:
Nirav Shah 2015-11-19 18:21:15 +05:30 • committed by Satish Singh
commit ea4b2e080a

View file

@ -600,11 +600,12 @@ static int cds_mc_thread(void *Arg)
*/
void cds_free_ol_rx_pkt_freeq(p_cds_sched_context pSchedContext)
{
struct cds_ol_rx_pkt *pkt, *tmp;
struct cds_ol_rx_pkt *pkt;
spin_lock_bh(&pSchedContext->cds_ol_rx_pkt_freeq_lock);
list_for_each_entry_safe(pkt, tmp, &pSchedContext->cds_ol_rx_pkt_freeq,
list) {
while (!list_empty(&pSchedContext->cds_ol_rx_pkt_freeq)) {
pkt = list_entry((&pSchedContext->cds_ol_rx_pkt_freeq)->next,
typeof(*pkt), list);
list_del(&pkt->list);
spin_unlock_bh(&pSchedContext->cds_ol_rx_pkt_freeq_lock);
cdf_mem_free(pkt);