linux/net
Gerrit Renker 76d127779e [DCCP]: Fix BUG in retransmission delay calculation
This bug resulted in ccid3_hc_tx_send_packet returning negative
delay values, which in turn triggered silently dequeueing packets in
dccp_write_xmit. As a result, only a few out of the submitted packets made
it at all onto the network.  Occasionally, when dccp_wait_for_ccid was
involved, this also triggered a bug warning since ccid3_hc_tx_send_packet
returned a negative value (which in reality was a negative delay value).

The cause for this bug lies in the comparison

 if (delay >= hctx->ccid3hctx_delta)
	return delay / 1000L;

The type of `delay' is `long', that of ccid3hctx_delta is `u32'. When comparing
negative long values against u32 values, the test returned `true' whenever delay
was smaller than 0 (meaning the packet was overdue to send).

The fix is by casting, subtracting, and then testing the difference with
regard to 0.

This has been tested and shown to work.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
2006-12-03 14:50:42 -02:00
..
802 [NET]: Kill direct includes of asm/checksum.h 2006-12-02 21:22:59 -08:00
8021q [PATCH] Finish annotations of struct vlan_ethhdr 2006-10-10 16:15:34 -07:00
appletalk [APPLETALK]: Fix potential OOPS in atalk_sendmsg(). 2006-10-30 15:24:34 -08:00
atm [ATM]: Kill ipcommon.[ch] 2006-12-02 21:32:08 -08:00
ax25 [AX25]: Use kmemdup 2006-12-02 21:24:01 -08:00
bluetooth [BLUETOOTH] lockdep: annotate sk_lock nesting in AF_BLUETOOTH 2006-12-02 21:21:35 -08:00
bridge [EBTABLES]: Split ebt_replace into user and kernel variants, annotate. 2006-12-02 21:32:05 -08:00
core [NET]: Accept wildcard delimiters in in[46]_pton 2006-12-02 22:04:04 -08:00
dccp [DCCP]: Fix BUG in retransmission delay calculation 2006-12-03 14:50:42 -02:00
decnet [RTNETLINK]: Add rtnl_put_cacheinfo() to unify some code 2006-12-02 21:30:44 -08:00
econet [NET]: Conversions from kmalloc+memset to k(z|c)alloc. 2006-07-21 14:51:30 -07:00
ethernet [NET]: Kill direct includes of asm/checksum.h 2006-12-02 21:22:59 -08:00
ieee80211 [PATCH] softmac: reduce scan debug output 2006-12-02 00:12:06 -05:00
ipv4 [NETFILTER]: nf_conntrack: EXPORT_SYMBOL cleanup 2006-12-02 22:11:25 -08:00
ipv6 [NETFILTER]: Mark old IPv4-only connection tracking scheduled for removal 2006-12-02 22:11:01 -08:00
ipx [IPX]: Annotate and fix IPX checksum 2006-11-05 14:11:25 -08:00
irda [IRDA]: Use kmemdup where applicable 2006-12-02 21:30:17 -08:00
key [IPSEC]: Add AF_KEY interface for encapsulation family. 2006-12-02 21:31:50 -08:00
lapb [LAPB]: Fix windowsize check 2006-08-05 21:15:58 -07:00
llc [LLC]: anotations 2006-12-02 21:21:23 -08:00
netfilter [NETFILTER]: xtables: fixes warning on compilation of hashlimit 2006-12-02 22:19:01 -08:00
netlabel NetLabel: convert to an extensibile/sparse category bitmap 2006-12-02 21:31:36 -08:00
netlink [GENETLINK]: Add cmd dump completion. 2006-12-02 21:32:09 -08:00
netrom [NETROM]: Use kmemdup 2006-12-02 21:24:02 -08:00
packet [AF_PACKET]: annotate 2006-12-02 21:21:24 -08:00
rose [ROSE] rose_add_loopback_node: propagate -E 2006-12-02 22:17:48 -08:00
rxrpc [NET]: Kill direct includes of asm/checksum.h 2006-12-02 21:22:59 -08:00
sched [PKT_SCHED] act_gact: division by zero 2006-12-02 21:32:11 -08:00
sctp [SCTP]: Use kzalloc where appropriate 2006-12-02 21:30:19 -08:00
sunrpc [SUNRPC]: Use k{mem,str}dup where applicable 2006-12-02 21:30:20 -08:00
tipc [TIPC]: Use kzalloc where appropriate 2006-12-02 21:30:21 -08:00
unix [NET]: Annotate csum_partial() callers in net/* 2006-12-02 21:23:32 -08:00
wanrouter Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
x25 Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
xfrm [XFRM]: Fix aevent structuring to be more complete. 2006-12-02 22:22:25 -08:00
compat.c [NET]: File descriptor loss while receiving SCM_RIGHTS 2006-10-11 23:59:48 -07:00
Kconfig [NETFILTER]: remove the reference to ipchains from Kconfig 2006-12-02 21:31:35 -08:00
Makefile [NetLabel]: core NetLabel subsystem 2006-09-22 14:53:34 -07:00
nonet.c [PATCH] Make most file operations structs in fs/ const 2006-03-28 09:16:06 -08:00
socket.c [NET]: The scheduled removal of the frame diverter. 2006-12-02 21:22:23 -08:00
sysctl_net.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
TUNABLE