Thomas Graf wrote: >* Nicolas DICHTEL <426E06F1.9000105@6wind.com> 2005-04-26 11:16 > > >>I set CONFIG_NET_SCH_CLK_GETTIMEOFDAY in my kernel. The macro >>PSCHED_TDIFF_SAFE calculates >>the difference between two timestamps and uses the function >>psched_tod_diff() to do this. >>If the clock is readjusted (due to ntp for example), this function can >>return a negative number >>(if bound > 1000000) and then the flow is blocked by the kernel. Am I >>right ? >> >> > >do_gettimeofday takes care of ntp adjustments so we _should_ be safe, >however, it might be wise to enforce a range of 0..bound instead of >INT_MIN..bound because qdiscs like red are relying on this. Assuming >we have a delta of -4 seconds and return -4e6 red will horribly >crash when acccessing the array with idle_time>>cell_log. > > > You can have the same kind of problem with a ingress filter. I propose the following patch to fix the range to 0..bound [SCHED] Fix range in psched_tod_diff() to 0..bound Signed-off-by: Nicolas Dichtel