projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/agpgart
[powerpc.git]
/
net
/
ipv4
/
tcp_scalable.c
diff --git
a/net/ipv4/tcp_scalable.c
b/net/ipv4/tcp_scalable.c
index
70e108e
..
4624501
100644
(file)
--- a/
net/ipv4/tcp_scalable.c
+++ b/
net/ipv4/tcp_scalable.c
@@
-5,7
+5,6
@@
* John Heffner <jheffner@sc.edu>
*/
* John Heffner <jheffner@sc.edu>
*/
-#include <linux/config.h>
#include <linux/module.h>
#include <net/tcp.h>
#include <linux/module.h>
#include <net/tcp.h>
@@
-16,27
+15,29
@@
#define TCP_SCALABLE_AI_CNT 50U
#define TCP_SCALABLE_MD_SCALE 3
#define TCP_SCALABLE_AI_CNT 50U
#define TCP_SCALABLE_MD_SCALE 3
-static void tcp_scalable_cong_avoid(struct
tcp_sock *tp
, u32 ack, u32 rtt,
+static void tcp_scalable_cong_avoid(struct
sock *sk
, u32 ack, u32 rtt,
u32 in_flight, int flag)
{
u32 in_flight, int flag)
{
- if (in_flight < tp->snd_cwnd)
+ struct tcp_sock *tp = tcp_sk(sk);
+
+ if (!tcp_is_cwnd_limited(sk, in_flight))
return;
return;
- if (tp->snd_cwnd <= tp->snd_ssthresh)
{
- t
p->snd_cwnd++
;
-
}
else {
+ if (tp->snd_cwnd <= tp->snd_ssthresh)
+ t
cp_slow_start(tp)
;
+ else {
tp->snd_cwnd_cnt++;
if (tp->snd_cwnd_cnt > min(tp->snd_cwnd, TCP_SCALABLE_AI_CNT)){
tp->snd_cwnd_cnt++;
if (tp->snd_cwnd_cnt > min(tp->snd_cwnd, TCP_SCALABLE_AI_CNT)){
- tp->snd_cwnd++;
+ if (tp->snd_cwnd < tp->snd_cwnd_clamp)
+ tp->snd_cwnd++;
tp->snd_cwnd_cnt = 0;
}
}
tp->snd_cwnd_cnt = 0;
}
}
- tp->snd_cwnd = min_t(u32, tp->snd_cwnd, tp->snd_cwnd_clamp);
- tp->snd_cwnd_stamp = tcp_time_stamp;
}
}
-static u32 tcp_scalable_ssthresh(struct
tcp_sock *tp
)
+static u32 tcp_scalable_ssthresh(struct
sock *sk
)
{
{
+ const struct tcp_sock *tp = tcp_sk(sk);
return max(tp->snd_cwnd - (tp->snd_cwnd>>TCP_SCALABLE_MD_SCALE), 2U);
}
return max(tp->snd_cwnd - (tp->snd_cwnd>>TCP_SCALABLE_MD_SCALE), 2U);
}