aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2009-12-28 15:09:11 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-12-28 15:09:11 -0500
commitea1e4b842049fcc4741096538114871a74859314 (patch)
treec2336ab480ac0fd62e0dc41b391d99c97158dc9c /include/net
parentb6ce5c33001b1dc83e6a1a6f30c5dccccea651b6 (diff)
parent92c6f8d849178582fc527aaf1e51dd37a74767d3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Diffstat (limited to 'include/net')
-rw-r--r--include/net/inet6_hashtables.h2
-rw-r--r--include/net/inet_hashtables.h8
-rw-r--r--include/net/inet_timewait_sock.h3
-rw-r--r--include/net/mac80211.h6
-rw-r--r--include/net/tcp.h22
5 files changed, 15 insertions, 26 deletions
diff --git a/include/net/inet6_hashtables.h b/include/net/inet6_hashtables.h
index 92838d3a1ab7..e46674d5daea 100644
--- a/include/net/inet6_hashtables.h
+++ b/include/net/inet6_hashtables.h
@@ -53,7 +53,7 @@ static inline int inet6_sk_ehashfn(const struct sock *sk)
53 return inet6_ehashfn(net, laddr, lport, faddr, fport); 53 return inet6_ehashfn(net, laddr, lport, faddr, fport);
54} 54}
55 55
56extern void __inet6_hash(struct sock *sk); 56extern int __inet6_hash(struct sock *sk, struct inet_timewait_sock *twp);
57 57
58/* 58/*
59 * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so 59 * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h
index 41cbddd25b70..74358d1b3f43 100644
--- a/include/net/inet_hashtables.h
+++ b/include/net/inet_hashtables.h
@@ -251,7 +251,7 @@ extern void inet_put_port(struct sock *sk);
251 251
252void inet_hashinfo_init(struct inet_hashinfo *h); 252void inet_hashinfo_init(struct inet_hashinfo *h);
253 253
254extern void __inet_hash_nolisten(struct sock *sk); 254extern int __inet_hash_nolisten(struct sock *sk, struct inet_timewait_sock *tw);
255extern void inet_hash(struct sock *sk); 255extern void inet_hash(struct sock *sk);
256extern void inet_unhash(struct sock *sk); 256extern void inet_unhash(struct sock *sk);
257 257
@@ -391,10 +391,12 @@ static inline struct sock *__inet_lookup_skb(struct inet_hashinfo *hashinfo,
391} 391}
392 392
393extern int __inet_hash_connect(struct inet_timewait_death_row *death_row, 393extern int __inet_hash_connect(struct inet_timewait_death_row *death_row,
394 struct sock *sk, u32 port_offset, 394 struct sock *sk,
395 u32 port_offset,
395 int (*check_established)(struct inet_timewait_death_row *, 396 int (*check_established)(struct inet_timewait_death_row *,
396 struct sock *, __u16, struct inet_timewait_sock **), 397 struct sock *, __u16, struct inet_timewait_sock **),
397 void (*hash)(struct sock *sk)); 398 int (*hash)(struct sock *sk, struct inet_timewait_sock *twp));
399
398extern int inet_hash_connect(struct inet_timewait_death_row *death_row, 400extern int inet_hash_connect(struct inet_timewait_death_row *death_row,
399 struct sock *sk); 401 struct sock *sk);
400#endif /* _INET_HASHTABLES_H */ 402#endif /* _INET_HASHTABLES_H */
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
index b801ade2295e..79f67eae8a7e 100644
--- a/include/net/inet_timewait_sock.h
+++ b/include/net/inet_timewait_sock.h
@@ -201,6 +201,9 @@ extern void inet_twsk_put(struct inet_timewait_sock *tw);
201 201
202extern int inet_twsk_unhash(struct inet_timewait_sock *tw); 202extern int inet_twsk_unhash(struct inet_timewait_sock *tw);
203 203
204extern int inet_twsk_bind_unhash(struct inet_timewait_sock *tw,
205 struct inet_hashinfo *hashinfo);
206
204extern struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk, 207extern struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
205 const int state); 208 const int state);
206 209
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index e6b6bf81d5b9..494ac69ff477 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1798,6 +1798,12 @@ static inline void ieee80211_rx_ni(struct ieee80211_hw *hw,
1798 local_bh_enable(); 1798 local_bh_enable();
1799} 1799}
1800 1800
1801/*
1802 * The TX headroom reserved by mac80211 for its own tx_status functions.
1803 * This is enough for the radiotap header.
1804 */
1805#define IEEE80211_TX_STATUS_HEADROOM 13
1806
1801/** 1807/**
1802 * ieee80211_tx_status - transmit status callback 1808 * ieee80211_tx_status - transmit status callback
1803 * 1809 *
diff --git a/include/net/tcp.h b/include/net/tcp.h
index e2d2ca2509be..0248c181a92c 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1261,28 +1261,6 @@ static inline struct sk_buff *tcp_write_queue_prev(struct sock *sk, struct sk_bu
1261#define tcp_for_write_queue_from_safe(skb, tmp, sk) \ 1261#define tcp_for_write_queue_from_safe(skb, tmp, sk) \
1262 skb_queue_walk_from_safe(&(sk)->sk_write_queue, skb, tmp) 1262 skb_queue_walk_from_safe(&(sk)->sk_write_queue, skb, tmp)
1263 1263
1264/* This function calculates a "timeout" which is equivalent to the timeout of a
1265 * TCP connection after "boundary" unsucessful, exponentially backed-off
1266 * retransmissions with an initial RTO of TCP_RTO_MIN.
1267 */
1268static inline bool retransmits_timed_out(const struct sock *sk,
1269 unsigned int boundary)
1270{
1271 unsigned int timeout, linear_backoff_thresh;
1272
1273 if (!inet_csk(sk)->icsk_retransmits)
1274 return false;
1275
1276 linear_backoff_thresh = ilog2(TCP_RTO_MAX/TCP_RTO_MIN);
1277
1278 if (boundary <= linear_backoff_thresh)
1279 timeout = ((2 << boundary) - 1) * TCP_RTO_MIN;
1280 else
1281 timeout = ((2 << linear_backoff_thresh) - 1) * TCP_RTO_MIN +
1282 (boundary - linear_backoff_thresh) * TCP_RTO_MAX;
1283
1284 return (tcp_time_stamp - tcp_sk(sk)->retrans_stamp) >= timeout;
1285}
1286 1264
1287static inline struct sk_buff *tcp_send_head(struct sock *sk) 1265static inline struct sk_buff *tcp_send_head(struct sock *sk)
1288{ 1266{