Patchwork net : fix for dst_gc_task not getting scheduled if __dst_free() is called consistently

login
register
mail settings
Submitter rajan.gupta@freescale.com
Date May 19, 2012, 9:39 a.m.
Message ID <1337420394-28115-1-git-send-email-rajan.gupta@freescale.com>
Download mbox | patch
Permalink /patch/160177/
State Rejected
Delegated to: David Miller
Headers show

Comments

rajan.gupta@freescale.com - May 19, 2012, 9:39 a.m.
From: Rajan Gupta <rajan.gupta@freescale.com>

dst_gc_work is cancelled and again rescheduled in __ds_free(). In case
__dsf_free() is consistently called dst_gc_work will never get called resulting in
memory not getting freed at all until one stops calling __dst_free
Signed-off-by: Rajan Gupta <rajan.gupta@freescale.com>
---
 net/core/dst.c |    1 -
 1 file changed, 1 deletion(-)

Patch

diff --git a/net/core/dst.c b/net/core/dst.c
index 8246d47..6820206 100644
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -215,7 +215,6 @@  void __dst_free(struct dst_entry *dst)
 	if (dst_garbage.timer_inc > DST_GC_INC) {
 		dst_garbage.timer_inc = DST_GC_INC;
 		dst_garbage.timer_expires = DST_GC_MIN;
-		cancel_delayed_work(&dst_gc_work);
 		schedule_delayed_work(&dst_gc_work, dst_garbage.timer_expires);
 	}
 	spin_unlock_bh(&dst_garbage.lock);