summaryrefslogtreecommitdiff
path: root/drivers/rmnet/shs/rmnet_shs_wq.c
diff options
context:
space:
mode:
authorSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>2019-04-05 17:04:56 -0600
committerGerrit - the friendly Code Review server <code-review@localhost>2019-04-17 15:18:23 -0700
commitf5bc3457730b9fed562d23d88a3552173b0afdf1 (patch)
tree2ac968093298ed15756cb05f15c7b467b57185b7 /drivers/rmnet/shs/rmnet_shs_wq.c
parent99da95a096ac9cc549ec665f246d574baf48a7c1 (diff)
downloaddata-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.c1
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);