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

[PKT_SCHED] HTB: initialize upper bound properly

The upper bound for HTB time diff needs to be scaled to PSCHED
units rather than just assuming usecs.  The field mbuffer is used
in TDIFF_SAFE(), as an upper bound.
Signed-off-by: default avatarStephen Hemminger <shemminger@osdl.org>
Acked-by: default avatarJamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 53602f92
...@@ -196,7 +196,7 @@ struct htb_class ...@@ -196,7 +196,7 @@ struct htb_class
struct qdisc_rate_table *rate; /* rate table of the class itself */ struct qdisc_rate_table *rate; /* rate table of the class itself */
struct qdisc_rate_table *ceil; /* ceiling rate (limits borrows too) */ struct qdisc_rate_table *ceil; /* ceiling rate (limits borrows too) */
long buffer,cbuffer; /* token bucket depth/rate */ long buffer,cbuffer; /* token bucket depth/rate */
long mbuffer; /* max wait time */ psched_tdiff_t mbuffer; /* max wait time */
long tokens,ctokens; /* current number of tokens */ long tokens,ctokens; /* current number of tokens */
psched_time_t t_c; /* checkpoint time */ psched_time_t t_c; /* checkpoint time */
}; };
...@@ -1601,7 +1601,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid, ...@@ -1601,7 +1601,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
/* set class to be in HTB_CAN_SEND state */ /* set class to be in HTB_CAN_SEND state */
cl->tokens = hopt->buffer; cl->tokens = hopt->buffer;
cl->ctokens = hopt->cbuffer; cl->ctokens = hopt->cbuffer;
cl->mbuffer = 60000000; /* 1min */ cl->mbuffer = PSCHED_JIFFIE2US(HZ*60) /* 1min */
PSCHED_GET_TIME(cl->t_c); PSCHED_GET_TIME(cl->t_c);
cl->cmode = HTB_CAN_SEND; cl->cmode = HTB_CAN_SEND;
......
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