Le mardi 04 janvier 2011 à 16:29 -0800, Stephen Hemminger a écrit :
quoted hunk ↗ jump to hunk
+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);