Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[firefly-linux-kernel-4.4.55.git] / net / sched / sch_choke.c
index ddd73cb2d7ba4080f0e8f75ddc715cf9cb2a1587..2aee02802c2760fafabb47d6bf4229d08d8ef907 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/skbuff.h>
-#include <linux/reciprocal_div.h>
 #include <linux/vmalloc.h>
 #include <net/pkt_sched.h>
 #include <net/inet_ecn.h>
@@ -77,12 +76,6 @@ struct choke_sched_data {
        struct sk_buff **tab;
 };
 
-/* deliver a random number between 0 and N - 1 */
-static u32 random_N(unsigned int N)
-{
-       return reciprocal_divide(prandom_u32(), N);
-}
-
 /* number of elements in queue including holes */
 static unsigned int choke_len(const struct choke_sched_data *q)
 {
@@ -233,7 +226,7 @@ static struct sk_buff *choke_peek_random(const struct choke_sched_data *q,
        int retrys = 3;
 
        do {
-               *pidx = (q->head + random_N(choke_len(q))) & q->tab_mask;
+               *pidx = (q->head + prandom_u32_max(choke_len(q))) & q->tab_mask;
                skb = q->tab[*pidx];
                if (skb)
                        return skb;