Hello again! After much hunting... Can the solution be this trivial? The attached patch replaces long with unsigned in a helper function. (This patch is against the iproute version in sid, but the etch version can be fixed the same way - except the functions are called tc_core_usec2tick and tc_core_tick2usec instead of tick2time/time2tick.)
Please try the attached patch and see if it fixes the issue for you. -- Regards, Andreas Henriksson
diff -uri iproute-20070313.orig/tc/tc_core.c iproute-20070313/tc/tc_core.c --- iproute-20070313.orig/tc/tc_core.c 2007-03-13 22:50:56.000000000 +0100 +++ iproute-20070313/tc/tc_core.c 2007-08-15 00:41:30.000000000 +0200 @@ -35,12 +35,12 @@ } -long tc_core_time2tick(long time) +unsigned tc_core_time2tick(unsigned time) { return time*tick_in_usec; } -long tc_core_tick2time(long tick) +unsigned tc_core_tick2time(unsigned tick) { return tick/tick_in_usec; } diff -uri iproute-20070313.orig/tc/tc_core.h iproute-20070313/tc/tc_core.h --- iproute-20070313.orig/tc/tc_core.h 2007-03-13 22:50:56.000000000 +0100 +++ iproute-20070313/tc/tc_core.h 2007-08-15 00:41:49.000000000 +0200 @@ -7,8 +7,8 @@ #define TIME_UNITS_PER_SEC 1000000000 int tc_core_time2big(long time); -long tc_core_time2tick(long time); -long tc_core_tick2time(long tick); +unsigned tc_core_time2tick(unsigned time); +unsigned tc_core_tick2time(unsigned tick); long tc_core_time2ktime(long time); long tc_core_ktime2time(long ktime); unsigned tc_calc_xmittime(unsigned rate, unsigned size);