]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
pkt_sched: sch_qfq: fix the update of eligible-group sets
authorPaolo Valente <paolo.valente@unimore.it>
Tue, 5 Mar 2013 08:04:58 +0000 (08:04 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Mar 2013 07:47:05 +0000 (02:47 -0500)
commit624b85fb96206879c8146abdba071222bbd25259
treee6fbd60c1cea8682333422ae797fd9ff83f83ce6
parent9b99b7e90bf5cd9a88823c49574ba80d92a98262
pkt_sched: sch_qfq: fix the update of eligible-group sets

Between two invocations of make_eligible, the system virtual time may
happen to grow enough that, in its binary representation, a bit with
higher order than 31 flips. This happens especially with
TSO/GSO. Before this fix, the mask used in make_eligible was computed
as (1UL<<index_of_last_flipped_bit)-1, whose value is well defined on
a 64-bit architecture, because index_of_flipped_bit <= 63, but is in
general undefined on a 32-bit architecture if index_of_flipped_bit > 31.
The fix just replaces 1UL with 1ULL.

Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Reviewed-by: Fabio Checconi <fchecconi@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_qfq.c