Thread (3 messages) 3 messages, 2 authors, 2003-09-22
STALE8315d

[PATCH] (4/4) use system get_random_bytes in hdlcdrv

From: Stephen Hemminger <hidden>
Date: 2003-09-19 20:38:09
Also in: linux-hams

Real random numbers aren't important here, but having custom
random number generate seems silly when linux kernel has good
way to get random data.

diff -Nru a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c
--- a/drivers/net/hamradio/hdlcdrv.c	Fri Sep 19 13:18:58 2003
+++ b/drivers/net/hamradio/hdlcdrv.c	Fri Sep 19 13:18:58 2003
@@ -52,6 +52,7 @@
 #include <linux/slab.h>
 #include <linux/errno.h>
 #include <linux/init.h>
+#include <linux/random.h>
 #include <asm/bitops.h>
 #include <asm/uaccess.h>
 
@@ -434,18 +435,10 @@
 
 /* ---------------------------------------------------------------------- */
 
-static unsigned short random_seed;
-
-static inline unsigned short random_num(void)
-{
-	random_seed = 28629 * random_seed + 157;
-	return random_seed;
-}
-
-/* ---------------------------------------------------------------------- */
-
 void hdlcdrv_arbitrate(struct net_device *dev, struct hdlcdrv_state *s)
 {
+	u8 prand;
+
 	if (!s || s->magic != HDLCDRV_MAGIC || s->hdlctx.ptt || !s->skb) 
 		return;
 	if (s->ch_params.fulldup) {
@@ -459,7 +452,9 @@
 	if ((--s->hdlctx.slotcnt) > 0)
 		return;
 	s->hdlctx.slotcnt = s->ch_params.slottime;
-	if ((random_num() % 256) > s->ch_params.ppersist)
+
+	get_random_bytes(&prand, sizeof(prand));
+	if (prand > s->ch_params.ppersist)
 		return;
 	start_tx(dev, s);
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help