Re: [PATCH] net: qrtr: free flow in __qrtr_node_release

2020-06-29 Thread cjhuang
On 2020-06-24 11:26, David Miller wrote: From: Carl Huang Date: Tue, 23 Jun 2020 11:22:03 +0800 @@ -168,6 +168,7 @@ static void __qrtr_node_release(struct kref *kref) struct radix_tree_iter iter; unsigned long flags; void __rcu **slot; + struct qrtr_tx_flow

Re: [PATCH] net: qrtr: free flow in __qrtr_node_release

2020-06-23 Thread David Miller
From: Carl Huang Date: Tue, 23 Jun 2020 11:22:03 +0800 > @@ -168,6 +168,7 @@ static void __qrtr_node_release(struct kref *kref) > struct radix_tree_iter iter; > unsigned long flags; > void __rcu **slot; > + struct qrtr_tx_flow *flow; Please retain the reverse christmas

[PATCH] net: qrtr: free flow in __qrtr_node_release

2020-06-22 Thread Carl Huang
The flow is allocated in qrtr_tx_wait, but not freed when qrtr node is released. (*slot) becomes NULL after radix_tree_iter_delete is called in __qrtr_node_release. The fix is to save (*slot) to a vairable and then free it. This memory leak is catched when kmemleak is enabled in kernel, the