https://github.com/torvalds/linux
Revision bb1d23b02657f494dff295f6cdd1f29df30fa61e authored by Eric Dumazet on 05 July 2005, 22:00:32 UTC, committed by David S. Miller on 05 July 2005, 22:00:32 UTC
- rt_check_expire() fixes (an overflow occured if size of the hash
  was >= 65536)

reminder of the bugfix:

The rt_check_expire() has a serious problem on machines with large
route caches, and a standard HZ value of 1000.

With default values, ie ip_rt_gc_interval = 60*HZ = 60000 ;

the loop count :

     for (t = ip_rt_gc_interval << rt_hash_log; t >= 0;


overflows (t is a 31 bit value) as soon rt_hash_log is >= 16  (65536
slots in route cache hash table).

In this case, rt_check_expire() does nothing at all

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 424c4b7
History
Tip revision: bb1d23b02657f494dff295f6cdd1f29df30fa61e authored by Eric Dumazet on 05 July 2005, 22:00:32 UTC
[IPV4]: Bug fix in rt_check_expire()
Tip revision: bb1d23b

README

back to top