Commit 9b0ed891 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller

netem: remove unnecessary 64 bit modulus

Fix compilation on 32 bit platforms (where doing modulus operation
with 64 bit requires extra glibc functions) by truncation.
The jitter for table distribution is limited to a 32 bit value
because random numbers are scaled as 32 bit value.

Also fix some whitespace.

Fixes: 99803171 ("netem: add uapi to express delay and jitter in nanoseconds")
Reported-by: default avatarRandy Dunlap <[email protected]>
Signed-off-by: Stephen Hemminger's avatarStephen Hemminger <[email protected]>
Signed-off-by: default avatarDavid S. Miller <[email protected]>
parent bce552fd
......@@ -312,9 +312,9 @@ static bool loss_event(struct netem_sched_data *q)
* std deviation sigma. Uses table lookup to approximate the desired
* distribution, and a uniformly-distributed pseudo-random source.
*/
static s64 tabledist(s64 mu, s64 sigma,
static s64 tabledist(s64 mu, s32 sigma,
struct crndstate *state,
const struct disttable *dist)
const struct disttable *dist)
{
s64 x;
long t;
......@@ -327,7 +327,7 @@ static s64 tabledist(s64 mu, s64 sigma,
/* default uniform distribution */
if (dist == NULL)
return (rnd % (2*sigma)) - sigma + mu;
return (rnd % (2 * sigma)) - sigma + mu;
t = dist->table[rnd % dist->size];
x = (sigma % NETEM_DIST_SCALE) * t;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment