On Wed, 05 Jan 2011 07:19:35 +0100
Eric Dumazet [off-list ref] wrote:
Le mardi 04 janvier 2011 à 16:29 -0800, Stephen Hemminger a écrit :
quoted
+static struct sk_buff *skb_peek_random(struct sk_buff_head *list)
+{
+ struct sk_buff *skb = list->next;
+ unsigned int idx = net_random() % list->qlen;
+
+ while (skb && idx-- > 0)
+ skb = skb->next;
+
+ return skb;
+}
You could avoid the divide op :
unsigned int idx = reciprocal_divide(random32(), list->qlen);
How would this work, it is a mod not a divide??
--