Subject: [PATCH 1/3] sfq: timer is deferrable

From: Stephen Hemminger <[email-masked]>
Date: Fri, 18 Jan 2008 16:11:16 -0800

The perturbation timer used for re-keying can be deferred, it doesn't
need to be deterministic.

Signed-off-by: Stephen Hemminger <[email-masked]>

--- a/net/sched/sch_sfq.c	2008-01-17 08:29:24.000000000 -0800
+++ b/net/sched/sch_sfq.c	2008-01-17 09:00:58.000000000 -0800
@@ -426,7 +426,9 @@ static int sfq_init(struct Qdisc *sch, s
 	struct sfq_sched_data *q = qdisc_priv(sch);
 	int i;
 
-	setup_timer(&q->perturb_timer, sfq_perturbation, (unsigned long)sch);
+	q->perturb_timer.function = sfq_perturbation;
+	q->perturb_timer.data = (unsigned long)sch;;
+	init_timer_deferrable(&q->perturb_timer);
 
 	for (i=0; i<SFQ_HASH_DIVISOR; i++)
 		q->ht[i] = SFQ_DEPTH;