diff options
author | David S. Miller <davem@davemloft.net> | 2009-12-02 01:13:38 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-02 01:13:38 -0500 |
commit | ff9c38bba37937adb909cceb2a6521f2e92e17c6 (patch) | |
tree | 93bd6152d9fa28348be99ef1c788040cc7b7a94d /net | |
parent | 65c0cfafce9575319fb6f70080fbe226e5617e3b (diff) | |
parent | b2722b1c3a893ec6021508da15b32282ec79f4da (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.c | 2 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 2 | ||||
-rw-r--r-- | net/ipv4/tcp.c | 1 | ||||
-rw-r--r-- | net/mac80211/agg-rx.c | 4 | ||||
-rw-r--r-- | net/mac80211/agg-tx.c | 17 | ||||
-rw-r--r-- | net/mac80211/ht.c | 7 | ||||
-rw-r--r-- | net/mac80211/ieee80211_i.h | 2 | ||||
-rw-r--r-- | net/sunrpc/addr.c | 18 | ||||
-rw-r--r-- | net/xfrm/xfrm_algo.c | 1 |
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); |
566 | out_fail: | 566 | out_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 | ||
127 | static int ___ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, | 127 | int ___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 | ||
996 | int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, | 996 | int __ieee80211_stop_tx_ba_session(struct sta_info *sta, u16 tid, |
997 | enum ieee80211_back_parties initiator); | 997 | enum ieee80211_back_parties initiator); |
998 | int ___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 */ |
1000 | void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, | 1002 | void 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 | */ |
312 | size_t rpc_uaddr2sockaddr(const char *uaddr, const size_t uaddr_len, | 315 | size_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 = { |