|
@@ -52,6 +52,7 @@
|
|
|
#include <linux/hdlcdrv.h>
|
|
|
#include <linux/baycom.h>
|
|
|
#include <linux/jiffies.h>
|
|
|
+#include <linux/random.h>
|
|
|
#include <net/ax25.h>
|
|
|
#include <asm/uaccess.h>
|
|
|
|
|
@@ -433,16 +434,6 @@ static void encode_hdlc(struct baycom_state *bc)
|
|
|
|
|
|
/* ---------------------------------------------------------------------- */
|
|
|
|
|
|
-static unsigned short random_seed;
|
|
|
-
|
|
|
-static inline unsigned short random_num(void)
|
|
|
-{
|
|
|
- random_seed = 28629 * random_seed + 157;
|
|
|
- return random_seed;
|
|
|
-}
|
|
|
-
|
|
|
-/* ---------------------------------------------------------------------- */
|
|
|
-
|
|
|
static int transmit(struct baycom_state *bc, int cnt, unsigned char stat)
|
|
|
{
|
|
|
struct parport *pp = bc->pdev->port;
|
|
@@ -464,7 +455,7 @@ static int transmit(struct baycom_state *bc, int cnt, unsigned char stat)
|
|
|
if ((--bc->hdlctx.slotcnt) > 0)
|
|
|
return 0;
|
|
|
bc->hdlctx.slotcnt = bc->ch_params.slottime;
|
|
|
- if ((random_num() % 256) > bc->ch_params.ppersist)
|
|
|
+ if ((random32() % 256) > bc->ch_params.ppersist)
|
|
|
return 0;
|
|
|
}
|
|
|
}
|