|
@@ -190,16 +190,14 @@ static inline int qdisc_restart(struct Qdisc *q)
|
|
|
void __qdisc_run(struct Qdisc *q)
|
|
|
{
|
|
|
int quota = weight_p;
|
|
|
- int work = 0;
|
|
|
|
|
|
while (qdisc_restart(q)) {
|
|
|
- work++;
|
|
|
/*
|
|
|
* Ordered by possible occurrence: Postpone processing if
|
|
|
* 1. we've exceeded packet quota
|
|
|
* 2. another process needs the CPU;
|
|
|
*/
|
|
|
- if (work >= quota || need_resched()) {
|
|
|
+ if (--quota <= 0 || need_resched()) {
|
|
|
__netif_schedule(q);
|
|
|
break;
|
|
|
}
|