diff options
author | Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> | 2019-04-05 17:04:56 -0600 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-04-17 15:18:23 -0700 |
commit | f5bc3457730b9fed562d23d88a3552173b0afdf1 (patch) | |
tree | 2ac968093298ed15756cb05f15c7b467b57185b7 /drivers/rmnet/shs/rmnet_shs_wq.c | |
parent | 99da95a096ac9cc549ec665f246d574baf48a7c1 (diff) | |
download | data-kernel-f5bc3457730b9fed562d23d88a3552173b0afdf1.tar.gz |
rmnet_shs: Fix issues for a idle flow after switch
After a flow goes idle during a switch it leaves the
potential for memleak if no backlog prevents it from
flushing and packets remain parked. Add timer restart
if packets remain parked so they get flushed once
backlog disappears if no NET_RX occurs afterwards.
Inactive Flows should not have parked skbs but
if they do then the WQ should deliver them before
removing the node from the hashtable as to remove
any chance of memleak.
CRs-Fixed: 2430628
Change-Id: I9eaf399e93f76ead2b6c9590e2d9e7b4a3dd9d2e
Acked-by: Raul Martinez <mraul@qti.qualcomm.com>
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Diffstat (limited to 'drivers/rmnet/shs/rmnet_shs_wq.c')
-rw-r--r-- | drivers/rmnet/shs/rmnet_shs_wq.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/rmnet/shs/rmnet_shs_wq.c b/drivers/rmnet/shs/rmnet_shs_wq.c index 405dd91..9265289 100644 --- a/drivers/rmnet/shs/rmnet_shs_wq.c +++ b/drivers/rmnet/shs/rmnet_shs_wq.c @@ -1227,6 +1227,7 @@ void rmnet_shs_wq_cleanup_hash_tbl(u8 force_clean) node_p->hash, tns2s, 0xDEF, 0xDEF, node_p, hnode); spin_lock_irqsave(&rmnet_shs_ht_splock, ht_flags); + rmnet_shs_clear_node(node_p, RMNET_WQ_CTXT); rmnet_shs_wq_dec_cpu_flow(hnode->current_cpu); if (node_p) { rmnet_shs_cpu_node_remove(node_p); |