aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-12-02 01:13:38 -0500
committerDavid S. Miller <davem@davemloft.net>2009-12-02 01:13:38 -0500
commitff9c38bba37937adb909cceb2a6521f2e92e17c6 (patch)
tree93bd6152d9fa28348be99ef1c788040cc7b7a94d /net
parent65c0cfafce9575319fb6f70080fbe226e5617e3b (diff)
parentb2722b1c3a893ec6021508da15b32282ec79f4da (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/mac80211/ht.c
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/ip_fragment.c2
-rw-r--r--net/ipv4/ip_output.c2
-rw-r--r--net/ipv4/tcp.c1
-rw-r--r--net/mac80211/agg-rx.c4
-rw-r--r--net/mac80211/agg-tx.c17
-rw-r--r--net/mac80211/ht.c7
-rw-r--r--net/mac80211/ieee80211_i.h2
-rw-r--r--net/sunrpc/addr.c18
-rw-r--r--net/xfrm/xfrm_algo.c1
9 files changed, 25 insertions, 29 deletions
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index 1472d8e3c191..c4735310a923 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -564,7 +564,7 @@ out_oversize:
564 printk(KERN_INFO "Oversized IP packet from %pI4.\n", 564 printk(KERN_INFO "Oversized IP packet from %pI4.\n",
565 &qp->saddr); 565 &qp->saddr);
566out_fail: 566out_fail:
567 IP_INC_STATS_BH(dev_net(dev), IPSTATS_MIB_REASMFAILS); 567 IP_INC_STATS_BH(net, IPSTATS_MIB_REASMFAILS);
568 return err; 568 return err;
569} 569}
570 570
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index b78e61502efe..e34013a78ef4 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -503,8 +503,8 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
503 if (skb->sk) { 503 if (skb->sk) {
504 frag->sk = skb->sk; 504 frag->sk = skb->sk;
505 frag->destructor = sock_wfree; 505 frag->destructor = sock_wfree;
506 truesizes += frag->truesize;
507 } 506 }
507 truesizes += frag->truesize;
508 } 508 }
509 509
510 /* Everything is OK. Generate! */ 510 /* Everything is OK. Generate! */
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 524f9760193b..7d4648f8b3d3 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -2059,6 +2059,7 @@ int tcp_disconnect(struct sock *sk, int flags)
2059 tp->snd_ssthresh = TCP_INFINITE_SSTHRESH; 2059 tp->snd_ssthresh = TCP_INFINITE_SSTHRESH;
2060 tp->snd_cwnd_cnt = 0; 2060 tp->snd_cwnd_cnt = 0;
2061 tp->bytes_acked = 0; 2061 tp->bytes_acked = 0;
2062 tp->window_clamp = 0;
2062 tcp_set_ca_state(sk, TCP_CA_Open); 2063 tcp_set_ca_state(sk, TCP_CA_Open);
2063 tcp_clear_retrans(tp); 2064 tcp_clear_retrans(tp);
2064 inet_csk_delack_init(sk); 2065 inet_csk_delack_init(sk);
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 614c65d62ae4..51c7dc3c4c3b 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -86,10 +86,6 @@ void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *r
86 struct ieee80211_local *local = sdata->local; 86 struct ieee80211_local *local = sdata->local;
87 struct sta_info *sta; 87 struct sta_info *sta;
88 88
89 /* stop HW Rx aggregation. ampdu_action existence
90 * already verified in session init so we add the BUG_ON */
91 BUG_ON(!local->ops->ampdu_action);
92
93 rcu_read_lock(); 89 rcu_read_lock();
94 90
95 sta = sta_info_get(local, ra); 91 sta = sta_info_get(local, ra);
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index adf01fcd462e..5e3a7eccef5a 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -124,13 +124,18 @@ void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u1
124 ieee80211_tx_skb(sdata, skb); 124 ieee80211_tx_skb(sdata, skb);
125} 125}
126 126
127static int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, 127int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
128 enum ieee80211_back_parties initiator) 128 enum ieee80211_back_parties initiator)
129{ 129{
130 struct ieee80211_local *local = sta->local; 130 struct ieee80211_local *local = sta->local;
131 int ret; 131 int ret;
132 u8 *state; 132 u8 *state;
133 133
134#ifdef CONFIG_MAC80211_HT_DEBUG
135 printk(KERN_DEBUG "Tx BA session stop requested for %pM tid %u\n",
136 sta->sta.addr, tid);
137#endif /* CONFIG_MAC80211_HT_DEBUG */
138
134 state = &sta->ampdu_mlme.tid_state_tx[tid]; 139 state = &sta->ampdu_mlme.tid_state_tx[tid];
135 140
136 if (*state == HT_AGG_STATE_OPERATIONAL) 141 if (*state == HT_AGG_STATE_OPERATIONAL)
@@ -145,7 +150,6 @@ static int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
145 150
146 /* HW shall not deny going back to legacy */ 151 /* HW shall not deny going back to legacy */
147 if (WARN_ON(ret)) { 152 if (WARN_ON(ret)) {
148 *state = HT_AGG_STATE_OPERATIONAL;
149 /* 153 /*
150 * We may have pending packets get stuck in this case... 154 * We may have pending packets get stuck in this case...
151 * Not bothering with a workaround for now. 155 * Not bothering with a workaround for now.
@@ -515,11 +519,6 @@ int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
515 goto unlock; 519 goto unlock;
516 } 520 }
517 521
518#ifdef CONFIG_MAC80211_HT_DEBUG
519 printk(KERN_DEBUG "Tx BA session stop requested for %pM tid %u\n",
520 sta->sta.addr, tid);
521#endif /* CONFIG_MAC80211_HT_DEBUG */
522
523 ret = ___ieee80211_stop_tx_ba_session(sta, tid, initiator); 522 ret = ___ieee80211_stop_tx_ba_session(sta, tid, initiator);
524 523
525 unlock: 524 unlock:
@@ -534,7 +533,7 @@ int ieee80211_stop_tx_ba_session(struct ieee80211_sta *pubsta, u16 tid,
534 struct ieee80211_sub_if_data *sdata = sta->sdata; 533 struct ieee80211_sub_if_data *sdata = sta->sdata;
535 struct ieee80211_local *local = sdata->local; 534 struct ieee80211_local *local = sdata->local;
536 535
537 if (WARN_ON(!local->ops->ampdu_action)) 536 if (!local->ops->ampdu_action)
538 return -EINVAL; 537 return -EINVAL;
539 538
540 if (tid >= STA_TID_NUM) 539 if (tid >= STA_TID_NUM)
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index 15c9d4f94cee..3787455fb696 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -160,10 +160,9 @@ void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata,
160 WLAN_BACK_INITIATOR, 0); 160 WLAN_BACK_INITIATOR, 0);
161 else { /* WLAN_BACK_RECIPIENT */ 161 else { /* WLAN_BACK_RECIPIENT */
162 spin_lock_bh(&sta->lock); 162 spin_lock_bh(&sta->lock);
163 sta->ampdu_mlme.tid_state_tx[tid] = 163 if (sta->ampdu_mlme.tid_state_tx[tid] & HT_ADDBA_REQUESTED_MSK)
164 HT_AGG_STATE_OPERATIONAL; 164 ___ieee80211_stop_tx_ba_session(sta, tid,
165 WLAN_BACK_RECIPIENT);
165 spin_unlock_bh(&sta->lock); 166 spin_unlock_bh(&sta->lock);
166 ieee80211_stop_tx_ba_session(&sta->sta, tid,
167 WLAN_BACK_RECIPIENT);
168 } 167 }
169} 168}
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index ab2894211638..039affa7c871 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -995,6 +995,8 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,
995 995
996int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, 996int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
997 enum ieee80211_back_parties initiator); 997 enum ieee80211_back_parties initiator);
998int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid,
999 enum ieee80211_back_parties initiator);
998 1000
999/* Spectrum management */ 1001/* Spectrum management */
1000void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, 1002void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata,
diff --git a/net/sunrpc/addr.c b/net/sunrpc/addr.c
index 22e8fd89477f..c7450c8f0a7c 100644
--- a/net/sunrpc/addr.c
+++ b/net/sunrpc/addr.c
@@ -306,24 +306,25 @@ EXPORT_SYMBOL_GPL(rpc_sockaddr2uaddr);
306 * @sap: buffer into which to plant socket address 306 * @sap: buffer into which to plant socket address
307 * @salen: size of buffer 307 * @salen: size of buffer
308 * 308 *
309 * @uaddr does not have to be '\0'-terminated, but strict_strtoul() and
310 * rpc_pton() require proper string termination to be successful.
311 *
309 * Returns the size of the socket address if successful; otherwise 312 * Returns the size of the socket address if successful; otherwise
310 * zero is returned. 313 * zero is returned.
311 */ 314 */
312size_t rpc_uaddr2sockaddr(const char *uaddr, const size_t uaddr_len, 315size_t rpc_uaddr2sockaddr(const char *uaddr, const size_t uaddr_len,
313 struct sockaddr *sap, const size_t salen) 316 struct sockaddr *sap, const size_t salen)
314{ 317{
315 char *c, buf[RPCBIND_MAXUADDRLEN]; 318 char *c, buf[RPCBIND_MAXUADDRLEN + sizeof('\0')];
316 unsigned long portlo, porthi; 319 unsigned long portlo, porthi;
317 unsigned short port; 320 unsigned short port;
318 321
319 if (uaddr_len > sizeof(buf)) 322 if (uaddr_len > RPCBIND_MAXUADDRLEN)
320 return 0; 323 return 0;
321 324
322 memcpy(buf, uaddr, uaddr_len); 325 memcpy(buf, uaddr, uaddr_len);
323 326
324 buf[uaddr_len] = '\n'; 327 buf[uaddr_len] = '\0';
325 buf[uaddr_len + 1] = '\0';
326
327 c = strrchr(buf, '.'); 328 c = strrchr(buf, '.');
328 if (unlikely(c == NULL)) 329 if (unlikely(c == NULL))
329 return 0; 330 return 0;
@@ -332,9 +333,7 @@ size_t rpc_uaddr2sockaddr(const char *uaddr, const size_t uaddr_len,
332 if (unlikely(portlo > 255)) 333 if (unlikely(portlo > 255))
333 return 0; 334 return 0;
334 335
335 c[0] = '\n'; 336 *c = '\0';
336 c[1] = '\0';
337
338 c = strrchr(buf, '.'); 337 c = strrchr(buf, '.');
339 if (unlikely(c == NULL)) 338 if (unlikely(c == NULL))
340 return 0; 339 return 0;
@@ -345,8 +344,7 @@ size_t rpc_uaddr2sockaddr(const char *uaddr, const size_t uaddr_len,
345 344
346 port = (unsigned short)((porthi << 8) | portlo); 345 port = (unsigned short)((porthi << 8) | portlo);
347 346
348 c[0] = '\0'; 347 *c = '\0';
349
350 if (rpc_pton(buf, strlen(buf), sap, salen) == 0) 348 if (rpc_pton(buf, strlen(buf), sap, salen) == 0)
351 return 0; 349 return 0;
352 350
diff --git a/net/xfrm/xfrm_algo.c b/net/xfrm/xfrm_algo.c
index ef8d61d50462..743c0134a6a9 100644
--- a/net/xfrm/xfrm_algo.c
+++ b/net/xfrm/xfrm_algo.c
@@ -399,6 +399,7 @@ static struct xfrm_algo_desc ealg_list[] = {
399}, 399},
400{ 400{
401 .name = "cbc(camellia)", 401 .name = "cbc(camellia)",
402 .compat = "camellia",
402 403
403 .uinfo = { 404 .uinfo = {
404 .encr = { 405 .encr = {