net/sched: act_api: move TCA_EXT_WARN_MSG to the correct hierarchy
[platform/kernel/linux-starfive.git] / net / sched / sch_pie.c
index 974038b..b60b31e 100644 (file)
@@ -72,7 +72,7 @@ bool pie_drop_early(struct Qdisc *sch, struct pie_params *params,
        if (vars->accu_prob >= (MAX_PROB / 2) * 17)
                return true;
 
-       prandom_bytes(&rnd, 8);
+       get_random_bytes(&rnd, 8);
        if ((rnd >> BITS_PER_BYTE) < local_prob) {
                vars->accu_prob = 0;
                return true;
@@ -421,8 +421,10 @@ static void pie_timer(struct timer_list *t)
 {
        struct pie_sched_data *q = from_timer(q, t, adapt_timer);
        struct Qdisc *sch = q->sch;
-       spinlock_t *root_lock = qdisc_lock(qdisc_root_sleeping(sch));
+       spinlock_t *root_lock;
 
+       rcu_read_lock();
+       root_lock = qdisc_lock(qdisc_root_sleeping(sch));
        spin_lock(root_lock);
        pie_calculate_probability(&q->params, &q->vars, sch->qstats.backlog);
 
@@ -430,6 +432,7 @@ static void pie_timer(struct timer_list *t)
        if (q->params.tupdate)
                mod_timer(&q->adapt_timer, jiffies + q->params.tupdate);
        spin_unlock(root_lock);
+       rcu_read_unlock();
 }
 
 static int pie_init(struct Qdisc *sch, struct nlattr *opt,