diff options
| author | Wong Hoi Sing Edison <hswong3i@gmail.com> | 2006-09-13 20:30:30 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-17 23:21:09 -0700 | 
| commit | 3795da47e82ee0596174f52817d6d3ecd91f68ea (patch) | |
| tree | 73a37568349bcefb554af606fa2363091f9828ad /net/ipv4/tcp_lp.c | |
| parent | 485c2967d622449f4bbfae305a6fc4e185b5b094 (diff) | |
| download | olio-linux-3.10-3795da47e82ee0596174f52817d6d3ecd91f68ea.tar.xz olio-linux-3.10-3795da47e82ee0596174f52817d6d3ecd91f68ea.zip  | |
[TCP] tcp-lp: bug fix for oops in 2.6.18-rc6
Sorry that the patch submited yesterday still contain a small bug.
This version have already been test for hours with BT connections. The
oops is now difficult to reproduce.
Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_lp.c')
| -rw-r--r-- | net/ipv4/tcp_lp.c | 35 | 
1 files changed, 21 insertions, 14 deletions
diff --git a/net/ipv4/tcp_lp.c b/net/ipv4/tcp_lp.c index 1f977b6ee9a..48f28d617ce 100644 --- a/net/ipv4/tcp_lp.c +++ b/net/ipv4/tcp_lp.c @@ -3,13 +3,8 @@   *   * TCP Low Priority is a distributed algorithm whose goal is to utilize only   *   the excess network bandwidth as compared to the ``fair share`` of - *   bandwidth as targeted by TCP. Available from: - *     http://www.ece.rice.edu/~akuzma/Doc/akuzma/TCP-LP.pdf + *   bandwidth as targeted by TCP.   * - * Original Author: - *   Aleksandar Kuzmanovic <akuzma@northwestern.edu> - * - * See http://www-ece.rice.edu/networks/TCP-LP/ for their implementation.   * As of 2.6.13, Linux supports pluggable congestion control algorithms.   * Due to the limitation of the API, we take the following changes from   * the original TCP-LP implementation: @@ -24,11 +19,20 @@   *   o OWD is handled in relative format, where local time stamp will in   *     tcp_time_stamp format.   * - * Port from 2.4.19 to 2.6.16 as module by: - *   Wong Hoi Sing Edison <hswong3i@gmail.com> - *   Hung Hing Lun <hlhung3i@gmail.com> + * Original Author: + *   Aleksandar Kuzmanovic <akuzma@northwestern.edu> + * Available from: + *   http://www.ece.rice.edu/~akuzma/Doc/akuzma/TCP-LP.pdf + * Original implementation for 2.4.19: + *   http://www-ece.rice.edu/networks/TCP-LP/   * - * Version: $Id: tcp_lp.c,v 1.22 2006-05-02 18:18:19 hswong3i Exp $ + * 2.6.x module Authors: + *   Wong Hoi Sing, Edison <hswong3i@gmail.com> + *   Hung Hing Lun, Mike <hlhung3i@gmail.com> + * SourceForge project page: + *   http://tcp-lp-mod.sourceforge.net/ + * + * Version: $Id: tcp_lp.c,v 1.24 2006/09/05 20:22:53 hswong3i Exp $   */  #include <linux/config.h> @@ -153,16 +157,19 @@ static u32 tcp_lp_remote_hz_estimator(struct sock *sk)  	if (m < 0)  		m = -m; -	if (rhz != 0) { +	if (rhz > 0) {  		m -= rhz >> 6;	/* m is now error in remote HZ est */  		rhz += m;	/* 63/64 old + 1/64 new */  	} else  		rhz = m << 6; + out:  	/* record time for successful remote HZ calc */ -	lp->flag |= LP_VALID_RHZ; +	if (rhz > 0) +		lp->flag |= LP_VALID_RHZ; +	else +		lp->flag &= ~LP_VALID_RHZ; - out:  	/* record reference time stamp */  	lp->remote_ref_time = tp->rx_opt.rcv_tsval;  	lp->local_ref_time = tp->rx_opt.rcv_tsecr; @@ -333,6 +340,6 @@ static void __exit tcp_lp_unregister(void)  module_init(tcp_lp_register);  module_exit(tcp_lp_unregister); -MODULE_AUTHOR("Wong Hoi Sing Edison, Hung Hing Lun"); +MODULE_AUTHOR("Wong Hoi Sing Edison, Hung Hing Lun Mike");  MODULE_LICENSE("GPL");  MODULE_DESCRIPTION("TCP Low Priority");  |