[PKT_SCHED] SFQ: use net_random
authorStephen Hemminger <stephen.hemminger@vyatta.com>
Mon, 21 Jan 2008 01:19:43 +0000 (17:19 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:08:15 +0000 (15:08 -0800)
SFQ doesn't need true random numbers, it is only using them to salt a
hash. Therefore it is better to use net_random() and avoid any
possible problems with depleting the entropy pool.

Signed-off-by: Stephen Hemminger <stephen.hemminger@vyatta.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_sfq.c

index ba3a85e..4179758 100644 (file)
@@ -386,7 +386,7 @@ static void sfq_perturbation(unsigned long arg)
        struct Qdisc *sch = (struct Qdisc*)arg;
        struct sfq_sched_data *q = qdisc_priv(sch);
 
-       get_random_bytes(&q->perturbation, 4);
+       q->perturbation = net_random();
 
        if (q->perturb_period)
                mod_timer(&q->perturb_timer, jiffies + q->perturb_period);
@@ -415,7 +415,7 @@ static int sfq_change(struct Qdisc *sch, struct rtattr *opt)
        del_timer(&q->perturb_timer);
        if (q->perturb_period) {
                mod_timer(&q->perturb_timer, jiffies + q->perturb_period);
-               get_random_bytes(&q->perturbation, 4);
+               q->perturbation = net_random();
        }
        sch_tree_unlock(sch);
        return 0;
@@ -443,7 +443,7 @@ static int sfq_init(struct Qdisc *sch, struct rtattr *opt)
        if (opt == NULL) {
                q->quantum = psched_mtu(sch->dev);
                q->perturb_period = 0;
-               get_random_bytes(&q->perturbation, 4);
+               q->perturbation = net_random();
        } else {
                int err = sfq_change(sch, opt);
                if (err)