Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 3154

kernel-2.6.18-238.el5.src.rpm

From: Thomas Graf <tgraf@redhat.com>
Date: Fri, 23 Jul 2010 15:31:27 -0400
Subject: [net] tcp: uninline tcp_is_cwnd_limited
Message-id: <20100723153127.GD14925@lsx.localdomain>
Patchwork-id: 27062
O-Subject: [RHEL5.6 PATCH 2/14] tcp: Uninline tcp_is_cwnd_limited
Bugzilla: 612709
RH-Acked-by: Neil Horman <nhorman@redhat.com>
RH-Acked-by: David S. Miller <davem@redhat.com>

commit cea14e0ed6082bd3dff19203d01340de6e7ca067
Author: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Date:   Sat Jan 12 03:19:12 2008 -0800

    [TCP]: Uninline tcp_is_cwnd_limited

    net/ipv4/tcp_cong.c:
      tcp_reno_cong_avoid |  -65
     1 function changed, 65 bytes removed, diff: -65

    net/ipv4/arp.c:
      arp_ignore |   -5
     1 function changed, 5 bytes removed, diff: -5

    net/ipv4/tcp_bic.c:
      bictcp_cong_avoid |  -57
     1 function changed, 57 bytes removed, diff: -57

    net/ipv4/tcp_cubic.c:
      bictcp_cong_avoid |  -61
     1 function changed, 61 bytes removed, diff: -61

    net/ipv4/tcp_highspeed.c:
      hstcp_cong_avoid |  -63
     1 function changed, 63 bytes removed, diff: -63

    net/ipv4/tcp_hybla.c:
      hybla_cong_avoid |  -85
     1 function changed, 85 bytes removed, diff: -85

    net/ipv4/tcp_htcp.c:
      htcp_cong_avoid |  -57
     1 function changed, 57 bytes removed, diff: -57

    net/ipv4/tcp_veno.c:
      tcp_veno_cong_avoid |  -52
     1 function changed, 52 bytes removed, diff: -52

    net/ipv4/tcp_scalable.c:
      tcp_scalable_cong_avoid |  -61
     1 function changed, 61 bytes removed, diff: -61

    net/ipv4/tcp_yeah.c:
      tcp_yeah_cong_avoid |  -75
     1 function changed, 75 bytes removed, diff: -75

    net/ipv4/tcp_illinois.c:
      tcp_illinois_cong_avoid |  -54
     1 function changed, 54 bytes removed, diff: -54

    net/dccp/ccids/ccid3.c:
      ccid3_update_send_interval |   -7
      ccid3_hc_tx_packet_recv    |   +7
     2 functions changed, 7 bytes added, 7 bytes removed, diff: +0

    net/ipv4/tcp_cong.c:
      tcp_is_cwnd_limited |  +88
     1 function changed, 88 bytes added, diff: +88

    built-in.o:
     14 functions changed, 95 bytes added, 642 bytes removed, diff: -547

    ...Again some gcc artifacts visible as well.

    Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Jarod Wilson <jarod@redhat.com>

diff --git a/include/net/tcp.h b/include/net/tcp.h
index 79160cf..2f3b820 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -752,27 +752,7 @@ static __inline__ __u32 tcp_max_burst(const struct tcp_sock *tp)
 {
 	return 3;
 }
-
-/* RFC2861 Check whether we are limited by application or congestion window
- * This is the inverse of cwnd check in tcp_tso_should_defer
- */
-static inline int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight)
-{
-	const struct tcp_sock *tp = tcp_sk(sk);
-	u32 left;
-
-	if (in_flight >= tp->snd_cwnd)
-		return 1;
-
-	if (!sk_can_gso(sk))
-		return 0;
-
-	left = tp->snd_cwnd - in_flight;
-	if (sysctl_tcp_tso_win_divisor)
-		return left * sysctl_tcp_tso_win_divisor < tp->snd_cwnd;
-	else
-		return left <= tcp_max_burst(tp);
-}
+extern int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight);
 
 static inline void tcp_minshall_update(struct tcp_sock *tp, int mss,
 				       const struct sk_buff *skb)
diff --git a/net/ipv4/tcp_cong.c b/net/ipv4/tcp_cong.c
index 7ff2e42..3ced76c 100644
--- a/net/ipv4/tcp_cong.c
+++ b/net/ipv4/tcp_cong.c
@@ -173,6 +173,27 @@ int tcp_set_congestion_control(struct sock *sk, const char *name)
 	return err;
 }
 
+/* RFC2861 Check whether we are limited by application or congestion window
+ * This is the inverse of cwnd check in tcp_tso_should_defer
+ */
+int tcp_is_cwnd_limited(const struct sock *sk, u32 in_flight)
+{
+	const struct tcp_sock *tp = tcp_sk(sk);
+	u32 left;
+
+	if (in_flight >= tp->snd_cwnd)
+		return 1;
+
+	if (!sk_can_gso(sk))
+		return 0;
+
+	left = tp->snd_cwnd - in_flight;
+	if (sysctl_tcp_tso_win_divisor)
+		return left * sysctl_tcp_tso_win_divisor < tp->snd_cwnd;
+	else
+		return left <= tcp_max_burst(tp);
+}
+EXPORT_SYMBOL_GPL(tcp_is_cwnd_limited);
 
 /*
  * Linear increase during slow start