aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp
diff options
context:
space:
mode:
authorPaul Moore <pmoore@redhat.com>2013-11-26 17:32:55 -0500
committerPaul Moore <pmoore@redhat.com>2013-11-26 17:32:55 -0500
commitdd0a11815a339d6deeea8357574f8126a8404c92 (patch)
treec3c743ac6323e1caf9e987d6946cc4b2333a8256 /net/sctp
parent42d64e1add3a1ce8a787116036163b8724362145 (diff)
parent5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 (diff)
Merge tag 'v3.12'
Linux 3.12
Diffstat (limited to 'net/sctp')
-rw-r--r--net/sctp/associola.c8
-rw-r--r--net/sctp/auth.c8
-rw-r--r--net/sctp/bind_addr.c8
-rw-r--r--net/sctp/chunk.c12
-rw-r--r--net/sctp/command.c8
-rw-r--r--net/sctp/debug.c8
-rw-r--r--net/sctp/endpointola.c8
-rw-r--r--net/sctp/input.c21
-rw-r--r--net/sctp/inqueue.c8
-rw-r--r--net/sctp/ipv6.c54
-rw-r--r--net/sctp/objcnt.c8
-rw-r--r--net/sctp/output.c11
-rw-r--r--net/sctp/outqueue.c8
-rw-r--r--net/sctp/primitive.c8
-rw-r--r--net/sctp/probe.c27
-rw-r--r--net/sctp/proc.c12
-rw-r--r--net/sctp/protocol.c10
-rw-r--r--net/sctp/sm_make_chunk.c133
-rw-r--r--net/sctp/sm_sideeffect.c8
-rw-r--r--net/sctp/sm_statefuns.c8
-rw-r--r--net/sctp/sm_statetable.c8
-rw-r--r--net/sctp/socket.c13
-rw-r--r--net/sctp/ssnmap.c8
-rw-r--r--net/sctp/sysctl.c8
-rw-r--r--net/sctp/transport.c8
-rw-r--r--net/sctp/tsnmap.c8
-rw-r--r--net/sctp/ulpevent.c8
-rw-r--r--net/sctp/ulpqueue.c8
28 files changed, 151 insertions, 294 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index ab67efc64b24..cef509985192 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -28,10 +28,7 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -43,9 +40,6 @@
43 * Daisy Chang <daisyc@us.ibm.com> 40 * Daisy Chang <daisyc@us.ibm.com>
44 * Ryan Layer <rmlayer@us.ibm.com> 41 * Ryan Layer <rmlayer@us.ibm.com>
45 * Kevin Gao <kevin.gao@intel.com> 42 * Kevin Gao <kevin.gao@intel.com>
46 *
47 * Any bugs reported given to us we will try to fix... any fixes shared will
48 * be incorporated into the next SCTP release.
49 */ 43 */
50 44
51#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 45#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/auth.c b/net/sctp/auth.c
index ba1dfc3f8def..8c4fa5dec824 100644
--- a/net/sctp/auth.c
+++ b/net/sctp/auth.c
@@ -22,16 +22,10 @@
22 * 22 *
23 * Please send any bug reports or fixes you make to the 23 * Please send any bug reports or fixes you make to the
24 * email address(es): 24 * email address(es):
25 * lksctp developers <lksctp-developers@lists.sourceforge.net> 25 * lksctp developers <linux-sctp@vger.kernel.org>
26 *
27 * Or submit a bug report through the following website:
28 * http://www.sf.net/projects/lksctp
29 * 26 *
30 * Written or modified by: 27 * Written or modified by:
31 * Vlad Yasevich <vladislav.yasevich@hp.com> 28 * Vlad Yasevich <vladislav.yasevich@hp.com>
32 *
33 * Any bugs reported given to us we will try to fix... any fixes shared will
34 * be incorporated into the next SCTP release.
35 */ 29 */
36 30
37#include <linux/slab.h> 31#include <linux/slab.h>
diff --git a/net/sctp/bind_addr.c b/net/sctp/bind_addr.c
index 64977ea0f9c5..077bb070052b 100644
--- a/net/sctp/bind_addr.c
+++ b/net/sctp/bind_addr.c
@@ -27,19 +27,13 @@
27 * 27 *
28 * Please send any bug reports or fixes you make to the 28 * Please send any bug reports or fixes you make to the
29 * email address(es): 29 * email address(es):
30 * lksctp developers <lksctp-developers@lists.sourceforge.net> 30 * lksctp developers <linux-sctp@vger.kernel.org>
31 *
32 * Or submit a bug report through the following website:
33 * http://www.sf.net/projects/lksctp
34 * 31 *
35 * Written or modified by: 32 * Written or modified by:
36 * La Monte H.P. Yarroll <piggy@acm.org> 33 * La Monte H.P. Yarroll <piggy@acm.org>
37 * Karl Knutson <karl@athena.chicago.il.us> 34 * Karl Knutson <karl@athena.chicago.il.us>
38 * Jon Grimm <jgrimm@us.ibm.com> 35 * Jon Grimm <jgrimm@us.ibm.com>
39 * Daisy Chang <daisyc@us.ibm.com> 36 * Daisy Chang <daisyc@us.ibm.com>
40 *
41 * Any bugs reported given to us we will try to fix... any fixes shared will
42 * be incorporated into the next SCTP release.
43 */ 37 */
44 38
45#include <linux/types.h> 39#include <linux/types.h>
diff --git a/net/sctp/chunk.c b/net/sctp/chunk.c
index 5780565f5b7d..7bd5ed4a8657 100644
--- a/net/sctp/chunk.c
+++ b/net/sctp/chunk.c
@@ -24,17 +24,11 @@
24 * 24 *
25 * Please send any bug reports or fixes you make to the 25 * Please send any bug reports or fixes you make to the
26 * email address(es): 26 * email address(es):
27 * lksctp developers <lksctp-developers@lists.sourceforge.net> 27 * lksctp developers <linux-sctp@vger.kernel.org>
28 *
29 * Or submit a bug report through the following website:
30 * http://www.sf.net/projects/lksctp
31 * 28 *
32 * Written or modified by: 29 * Written or modified by:
33 * Jon Grimm <jgrimm@us.ibm.com> 30 * Jon Grimm <jgrimm@us.ibm.com>
34 * Sridhar Samudrala <sri@us.ibm.com> 31 * Sridhar Samudrala <sri@us.ibm.com>
35 *
36 * Any bugs reported given to us we will try to fix... any fixes shared will
37 * be incorporated into the next SCTP release.
38 */ 32 */
39 33
40#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 34#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -201,9 +195,9 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc,
201 /* This is the biggest possible DATA chunk that can fit into 195 /* This is the biggest possible DATA chunk that can fit into
202 * the packet 196 * the packet
203 */ 197 */
204 max_data = asoc->pathmtu - 198 max_data = (asoc->pathmtu -
205 sctp_sk(asoc->base.sk)->pf->af->net_header_len - 199 sctp_sk(asoc->base.sk)->pf->af->net_header_len -
206 sizeof(struct sctphdr) - sizeof(struct sctp_data_chunk); 200 sizeof(struct sctphdr) - sizeof(struct sctp_data_chunk)) & ~3;
207 201
208 max = asoc->frag_point; 202 max = asoc->frag_point;
209 /* If the the peer requested that we authenticate DATA chunks 203 /* If the the peer requested that we authenticate DATA chunks
diff --git a/net/sctp/command.c b/net/sctp/command.c
index c0044019db9e..3d9a9ff69c03 100644
--- a/net/sctp/command.c
+++ b/net/sctp/command.c
@@ -25,17 +25,11 @@
25 * 25 *
26 * Please send any bug reports or fixes you make to the 26 * Please send any bug reports or fixes you make to the
27 * email address(es): 27 * email address(es):
28 * lksctp developers <lksctp-developers@lists.sourceforge.net> 28 * lksctp developers <linux-sctp@vger.kernel.org>
29 *
30 * Or submit a bug report through the following website:
31 * http://www.sf.net/projects/lksctp
32 * 29 *
33 * Written or modified by: 30 * Written or modified by:
34 * La Monte H.P. Yarroll <piggy@acm.org> 31 * La Monte H.P. Yarroll <piggy@acm.org>
35 * Karl Knutson <karl@athena.chicago.il.us> 32 * Karl Knutson <karl@athena.chicago.il.us>
36 *
37 * Any bugs reported given to us we will try to fix... any fixes shared will
38 * be incorporated into the next SCTP release.
39 */ 33 */
40 34
41#include <linux/types.h> 35#include <linux/types.h>
diff --git a/net/sctp/debug.c b/net/sctp/debug.c
index f4998780d6df..e89015d8935a 100644
--- a/net/sctp/debug.c
+++ b/net/sctp/debug.c
@@ -28,10 +28,7 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -40,9 +37,6 @@
40 * Jon Grimm <jgrimm@us.ibm.com> 37 * Jon Grimm <jgrimm@us.ibm.com>
41 * Daisy Chang <daisyc@us.ibm.com> 38 * Daisy Chang <daisyc@us.ibm.com>
42 * Sridhar Samudrala <sri@us.ibm.com> 39 * Sridhar Samudrala <sri@us.ibm.com>
43 *
44 * Any bugs reported given to us we will try to fix... any fixes shared will
45 * be incorporated into the next SCTP release.
46 */ 40 */
47 41
48#include <net/sctp/sctp.h> 42#include <net/sctp/sctp.h>
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index 9e3d257de0e0..09b8daac87c8 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -29,10 +29,7 @@
29 * 29 *
30 * Please send any bug reports or fixes you make to the 30 * Please send any bug reports or fixes you make to the
31 * email address(es): 31 * email address(es):
32 * lksctp developers <lksctp-developers@lists.sourceforge.net> 32 * lksctp developers <linux-sctp@vger.kernel.org>
33 *
34 * Or submit a bug report through the following website:
35 * http://www.sf.net/projects/lksctp
36 * 33 *
37 * Written or modified by: 34 * Written or modified by:
38 * La Monte H.P. Yarroll <piggy@acm.org> 35 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -40,9 +37,6 @@
40 * Jon Grimm <jgrimm@austin.ibm.com> 37 * Jon Grimm <jgrimm@austin.ibm.com>
41 * Daisy Chang <daisyc@us.ibm.com> 38 * Daisy Chang <daisyc@us.ibm.com>
42 * Dajiang Zhang <dajiang.zhang@nokia.com> 39 * Dajiang Zhang <dajiang.zhang@nokia.com>
43 *
44 * Any bugs reported given to us we will try to fix... any fixes shared will
45 * be incorporated into the next SCTP release.
46 */ 40 */
47 41
48#include <linux/types.h> 42#include <linux/types.h>
diff --git a/net/sctp/input.c b/net/sctp/input.c
index 3fa4d858c35a..98b69bbecdd9 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -29,10 +29,7 @@
29 * 29 *
30 * Please send any bug reports or fixes you make to the 30 * Please send any bug reports or fixes you make to the
31 * email address(es): 31 * email address(es):
32 * lksctp developers <lksctp-developers@lists.sourceforge.net> 32 * lksctp developers <linux-sctp@vger.kernel.org>
33 *
34 * Or submit a bug report through the following website:
35 * http://www.sf.net/projects/lksctp
36 * 33 *
37 * Written or modified by: 34 * Written or modified by:
38 * La Monte H.P. Yarroll <piggy@acm.org> 35 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -43,9 +40,6 @@
43 * Daisy Chang <daisyc@us.ibm.com> 40 * Daisy Chang <daisyc@us.ibm.com>
44 * Sridhar Samudrala <sri@us.ibm.com> 41 * Sridhar Samudrala <sri@us.ibm.com>
45 * Ardelle Fan <ardelle.fan@intel.com> 42 * Ardelle Fan <ardelle.fan@intel.com>
46 *
47 * Any bugs reported given to us we will try to fix... any fixes shared will
48 * be incorporated into the next SCTP release.
49 */ 43 */
50 44
51#include <linux/types.h> 45#include <linux/types.h>
@@ -87,15 +81,7 @@ static inline int sctp_rcv_checksum(struct net *net, struct sk_buff *skb)
87{ 81{
88 struct sctphdr *sh = sctp_hdr(skb); 82 struct sctphdr *sh = sctp_hdr(skb);
89 __le32 cmp = sh->checksum; 83 __le32 cmp = sh->checksum;
90 struct sk_buff *list; 84 __le32 val = sctp_compute_cksum(skb, 0);
91 __le32 val;
92 __u32 tmp = sctp_start_cksum((__u8 *)sh, skb_headlen(skb));
93
94 skb_walk_frags(skb, list)
95 tmp = sctp_update_cksum((__u8 *)list->data, skb_headlen(list),
96 tmp);
97
98 val = sctp_end_cksum(tmp);
99 85
100 if (val != cmp) { 86 if (val != cmp) {
101 /* CRC failure, dump it. */ 87 /* CRC failure, dump it. */
@@ -648,8 +634,7 @@ void sctp_v4_err(struct sk_buff *skb, __u32 info)
648 break; 634 break;
649 case ICMP_REDIRECT: 635 case ICMP_REDIRECT:
650 sctp_icmp_redirect(sk, transport, skb); 636 sctp_icmp_redirect(sk, transport, skb);
651 err = 0; 637 /* Fall through to out_unlock. */
652 break;
653 default: 638 default:
654 goto out_unlock; 639 goto out_unlock;
655 } 640 }
diff --git a/net/sctp/inqueue.c b/net/sctp/inqueue.c
index cb25f040fed0..5856932fdc38 100644
--- a/net/sctp/inqueue.c
+++ b/net/sctp/inqueue.c
@@ -30,17 +30,11 @@
30 * 30 *
31 * Please send any bug reports or fixes you make to the 31 * Please send any bug reports or fixes you make to the
32 * email address(es): 32 * email address(es):
33 * lksctp developers <lksctp-developers@lists.sourceforge.net> 33 * lksctp developers <linux-sctp@vger.kernel.org>
34 *
35 * Or submit a bug report through the following website:
36 * http://www.sf.net/projects/lksctp
37 * 34 *
38 * Written or modified by: 35 * Written or modified by:
39 * La Monte H.P. Yarroll <piggy@acm.org> 36 * La Monte H.P. Yarroll <piggy@acm.org>
40 * Karl Knutson <karl@athena.chicago.il.us> 37 * Karl Knutson <karl@athena.chicago.il.us>
41 *
42 * Any bugs reported given to us we will try to fix... any fixes shared will
43 * be incorporated into the next SCTP release.
44 */ 38 */
45 39
46#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 40#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
index 09ffcc912d23..e7b2d4fe2b6a 100644
--- a/net/sctp/ipv6.c
+++ b/net/sctp/ipv6.c
@@ -27,10 +27,7 @@
27 * 27 *
28 * Please send any bug reports or fixes you make to the 28 * Please send any bug reports or fixes you make to the
29 * email address(es): 29 * email address(es):
30 * lksctp developers <lksctp-developers@lists.sourceforge.net> 30 * lksctp developers <linux-sctp@vger.kernel.org>
31 *
32 * Or submit a bug report through the following website:
33 * http://www.sf.net/projects/lksctp
34 * 31 *
35 * Written or modified by: 32 * Written or modified by:
36 * Le Yanqun <yanqun.le@nokia.com> 33 * Le Yanqun <yanqun.le@nokia.com>
@@ -42,9 +39,6 @@
42 * 39 *
43 * Based on: 40 * Based on:
44 * linux/net/ipv6/tcp_ipv6.c 41 * linux/net/ipv6/tcp_ipv6.c
45 *
46 * Any bugs reported given to us we will try to fix... any fixes shared will
47 * be incorporated into the next SCTP release.
48 */ 42 */
49 43
50#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 44#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -189,7 +183,7 @@ static void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
189 break; 183 break;
190 case NDISC_REDIRECT: 184 case NDISC_REDIRECT:
191 sctp_icmp_redirect(sk, transport, skb); 185 sctp_icmp_redirect(sk, transport, skb);
192 break; 186 goto out_unlock;
193 default: 187 default:
194 break; 188 break;
195 } 189 }
@@ -210,44 +204,23 @@ out:
210 in6_dev_put(idev); 204 in6_dev_put(idev);
211} 205}
212 206
213/* Based on tcp_v6_xmit() in tcp_ipv6.c. */
214static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport) 207static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport)
215{ 208{
216 struct sock *sk = skb->sk; 209 struct sock *sk = skb->sk;
217 struct ipv6_pinfo *np = inet6_sk(sk); 210 struct ipv6_pinfo *np = inet6_sk(sk);
218 struct flowi6 fl6; 211 struct flowi6 *fl6 = &transport->fl.u.ip6;
219
220 memset(&fl6, 0, sizeof(fl6));
221
222 fl6.flowi6_proto = sk->sk_protocol;
223
224 /* Fill in the dest address from the route entry passed with the skb
225 * and the source address from the transport.
226 */
227 fl6.daddr = transport->ipaddr.v6.sin6_addr;
228 fl6.saddr = transport->saddr.v6.sin6_addr;
229
230 fl6.flowlabel = np->flow_label;
231 IP6_ECN_flow_xmit(sk, fl6.flowlabel);
232 if (ipv6_addr_type(&fl6.saddr) & IPV6_ADDR_LINKLOCAL)
233 fl6.flowi6_oif = transport->saddr.v6.sin6_scope_id;
234 else
235 fl6.flowi6_oif = sk->sk_bound_dev_if;
236
237 if (np->opt && np->opt->srcrt) {
238 struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt;
239 fl6.daddr = *rt0->addr;
240 }
241 212
242 pr_debug("%s: skb:%p, len:%d, src:%pI6 dst:%pI6\n", __func__, skb, 213 pr_debug("%s: skb:%p, len:%d, src:%pI6 dst:%pI6\n", __func__, skb,
243 skb->len, &fl6.saddr, &fl6.daddr); 214 skb->len, &fl6->saddr, &fl6->daddr);
244 215
245 SCTP_INC_STATS(sock_net(sk), SCTP_MIB_OUTSCTPPACKS); 216 IP6_ECN_flow_xmit(sk, fl6->flowlabel);
246 217
247 if (!(transport->param_flags & SPP_PMTUD_ENABLE)) 218 if (!(transport->param_flags & SPP_PMTUD_ENABLE))
248 skb->local_df = 1; 219 skb->local_df = 1;
249 220
250 return ip6_xmit(sk, skb, &fl6, np->opt, np->tclass); 221 SCTP_INC_STATS(sock_net(sk), SCTP_MIB_OUTSCTPPACKS);
222
223 return ip6_xmit(sk, skb, fl6, np->opt, np->tclass);
251} 224}
252 225
253/* Returns the dst cache entry for the given source and destination ip 226/* Returns the dst cache entry for the given source and destination ip
@@ -260,10 +233,12 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
260 struct dst_entry *dst = NULL; 233 struct dst_entry *dst = NULL;
261 struct flowi6 *fl6 = &fl->u.ip6; 234 struct flowi6 *fl6 = &fl->u.ip6;
262 struct sctp_bind_addr *bp; 235 struct sctp_bind_addr *bp;
236 struct ipv6_pinfo *np = inet6_sk(sk);
263 struct sctp_sockaddr_entry *laddr; 237 struct sctp_sockaddr_entry *laddr;
264 union sctp_addr *baddr = NULL; 238 union sctp_addr *baddr = NULL;
265 union sctp_addr *daddr = &t->ipaddr; 239 union sctp_addr *daddr = &t->ipaddr;
266 union sctp_addr dst_saddr; 240 union sctp_addr dst_saddr;
241 struct in6_addr *final_p, final;
267 __u8 matchlen = 0; 242 __u8 matchlen = 0;
268 __u8 bmatchlen; 243 __u8 bmatchlen;
269 sctp_scope_t scope; 244 sctp_scope_t scope;
@@ -287,7 +262,8 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
287 pr_debug("src=%pI6 - ", &fl6->saddr); 262 pr_debug("src=%pI6 - ", &fl6->saddr);
288 } 263 }
289 264
290 dst = ip6_dst_lookup_flow(sk, fl6, NULL, false); 265 final_p = fl6_update_dst(fl6, np->opt, &final);
266 dst = ip6_dst_lookup_flow(sk, fl6, final_p, false);
291 if (!asoc || saddr) 267 if (!asoc || saddr)
292 goto out; 268 goto out;
293 269
@@ -339,10 +315,12 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr,
339 } 315 }
340 } 316 }
341 rcu_read_unlock(); 317 rcu_read_unlock();
318
342 if (baddr) { 319 if (baddr) {
343 fl6->saddr = baddr->v6.sin6_addr; 320 fl6->saddr = baddr->v6.sin6_addr;
344 fl6->fl6_sport = baddr->v6.sin6_port; 321 fl6->fl6_sport = baddr->v6.sin6_port;
345 dst = ip6_dst_lookup_flow(sk, fl6, NULL, false); 322 final_p = fl6_update_dst(fl6, np->opt, &final);
323 dst = ip6_dst_lookup_flow(sk, fl6, final_p, false);
346 } 324 }
347 325
348out: 326out:
@@ -351,7 +329,7 @@ out:
351 329
352 rt = (struct rt6_info *)dst; 330 rt = (struct rt6_info *)dst;
353 t->dst = dst; 331 t->dst = dst;
354 332 t->dst_cookie = rt->rt6i_node ? rt->rt6i_node->fn_sernum : 0;
355 pr_debug("rt6_dst:%pI6 rt6_src:%pI6\n", &rt->rt6i_dst.addr, 333 pr_debug("rt6_dst:%pI6 rt6_src:%pI6\n", &rt->rt6i_dst.addr,
356 &fl6->saddr); 334 &fl6->saddr);
357 } else { 335 } else {
diff --git a/net/sctp/objcnt.c b/net/sctp/objcnt.c
index fe012c44f8df..5ea573b37648 100644
--- a/net/sctp/objcnt.c
+++ b/net/sctp/objcnt.c
@@ -26,16 +26,10 @@
26 * 26 *
27 * Please send any bug reports or fixes you make to the 27 * Please send any bug reports or fixes you make to the
28 * email address(es): 28 * email address(es):
29 * lksctp developers <lksctp-developers@lists.sourceforge.net> 29 * lksctp developers <linux-sctp@vger.kernel.org>
30 *
31 * Or submit a bug report through the following website:
32 * http://www.sf.net/projects/lksctp
33 * 30 *
34 * Written or modified by: 31 * Written or modified by:
35 * Jon Grimm <jgrimm@us.ibm.com> 32 * Jon Grimm <jgrimm@us.ibm.com>
36 *
37 * Any bugs reported given to us we will try to fix... any fixes shared will
38 * be incorporated into the next SCTP release.
39 */ 33 */
40 34
41#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 35#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/output.c b/net/sctp/output.c
index a46d1eb41762..319137340d15 100644
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -26,19 +26,13 @@
26 * 26 *
27 * Please send any bug reports or fixes you make to the 27 * Please send any bug reports or fixes you make to the
28 * email address(es): 28 * email address(es):
29 * lksctp developers <lksctp-developers@lists.sourceforge.net> 29 * lksctp developers <linux-sctp@vger.kernel.org>
30 *
31 * Or submit a bug report through the following website:
32 * http://www.sf.net/projects/lksctp
33 * 30 *
34 * Written or modified by: 31 * Written or modified by:
35 * La Monte H.P. Yarroll <piggy@acm.org> 32 * La Monte H.P. Yarroll <piggy@acm.org>
36 * Karl Knutson <karl@athena.chicago.il.us> 33 * Karl Knutson <karl@athena.chicago.il.us>
37 * Jon Grimm <jgrimm@austin.ibm.com> 34 * Jon Grimm <jgrimm@austin.ibm.com>
38 * Sridhar Samudrala <sri@us.ibm.com> 35 * Sridhar Samudrala <sri@us.ibm.com>
39 *
40 * Any bugs reported given to us we will try to fix... any fixes shared will
41 * be incorporated into the next SCTP release.
42 */ 36 */
43 37
44#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 38#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -542,7 +536,8 @@ int sctp_packet_transmit(struct sctp_packet *packet)
542 * by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>. 536 * by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>.
543 */ 537 */
544 if (!sctp_checksum_disable) { 538 if (!sctp_checksum_disable) {
545 if (!(dst->dev->features & NETIF_F_SCTP_CSUM)) { 539 if (!(dst->dev->features & NETIF_F_SCTP_CSUM) ||
540 (dst_xfrm(dst) != NULL) || packet->ipfragok) {
546 __u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len); 541 __u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
547 542
548 /* 3) Put the resultant value into the checksum field in the 543 /* 3) Put the resultant value into the checksum field in the
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index ef9e2bbc0f2f..94df75877869 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -28,10 +28,7 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -41,9 +38,6 @@
41 * Hui Huang <hui.huang@nokia.com> 38 * Hui Huang <hui.huang@nokia.com>
42 * Sridhar Samudrala <sri@us.ibm.com> 39 * Sridhar Samudrala <sri@us.ibm.com>
43 * Jon Grimm <jgrimm@us.ibm.com> 40 * Jon Grimm <jgrimm@us.ibm.com>
44 *
45 * Any bugs reported given to us we will try to fix... any fixes shared will
46 * be incorporated into the next SCTP release.
47 */ 41 */
48 42
49#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 43#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/primitive.c b/net/sctp/primitive.c
index 794bb14decde..ce1ffd811775 100644
--- a/net/sctp/primitive.c
+++ b/net/sctp/primitive.c
@@ -29,10 +29,7 @@
29 * 29 *
30 * Please send any bug reports or fixes you make to the 30 * Please send any bug reports or fixes you make to the
31 * email address(es): 31 * email address(es):
32 * lksctp developers <lksctp-developers@lists.sourceforge.net> 32 * lksctp developers <linux-sctp@vger.kernel.org>
33 *
34 * Or submit a bug report through the following website:
35 * http://www.sf.net/projects/lksctp
36 * 33 *
37 * Written or modified by: 34 * Written or modified by:
38 * La Monte H.P. Yarroll <piggy@acm.org> 35 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -40,9 +37,6 @@
40 * Karl Knutson <karl@athena.chicago.il.us> 37 * Karl Knutson <karl@athena.chicago.il.us>
41 * Ardelle Fan <ardelle.fan@intel.com> 38 * Ardelle Fan <ardelle.fan@intel.com>
42 * Kevin Gao <kevin.gao@intel.com> 39 * Kevin Gao <kevin.gao@intel.com>
43 *
44 * Any bugs reported given to us we will try to fix... any fixes shared will
45 * be incorporated into the next SCTP release.
46 */ 40 */
47 41
48#include <linux/types.h> 42#include <linux/types.h>
diff --git a/net/sctp/probe.c b/net/sctp/probe.c
index e62c22535be4..53c452efb40b 100644
--- a/net/sctp/probe.c
+++ b/net/sctp/probe.c
@@ -46,6 +46,10 @@ static int port __read_mostly = 0;
46MODULE_PARM_DESC(port, "Port to match (0=all)"); 46MODULE_PARM_DESC(port, "Port to match (0=all)");
47module_param(port, int, 0); 47module_param(port, int, 0);
48 48
49static unsigned int fwmark __read_mostly = 0;
50MODULE_PARM_DESC(fwmark, "skb mark to match (0=no mark)");
51module_param(fwmark, uint, 0);
52
49static int bufsize __read_mostly = 64 * 1024; 53static int bufsize __read_mostly = 64 * 1024;
50MODULE_PARM_DESC(bufsize, "Log buffer size (default 64k)"); 54MODULE_PARM_DESC(bufsize, "Log buffer size (default 64k)");
51module_param(bufsize, int, 0); 55module_param(bufsize, int, 0);
@@ -129,15 +133,19 @@ static sctp_disposition_t jsctp_sf_eat_sack(struct net *net,
129 void *arg, 133 void *arg,
130 sctp_cmd_seq_t *commands) 134 sctp_cmd_seq_t *commands)
131{ 135{
136 struct sctp_chunk *chunk = arg;
137 struct sk_buff *skb = chunk->skb;
132 struct sctp_transport *sp; 138 struct sctp_transport *sp;
133 static __u32 lcwnd = 0; 139 static __u32 lcwnd = 0;
134 struct timespec now; 140 struct timespec now;
135 141
136 sp = asoc->peer.primary_path; 142 sp = asoc->peer.primary_path;
137 143
138 if ((full || sp->cwnd != lcwnd) && 144 if (((port == 0 && fwmark == 0) ||
139 (!port || asoc->peer.port == port || 145 asoc->peer.port == port ||
140 ep->base.bind_addr.port == port)) { 146 ep->base.bind_addr.port == port ||
147 (fwmark > 0 && skb->mark == fwmark)) &&
148 (full || sp->cwnd != lcwnd)) {
141 lcwnd = sp->cwnd; 149 lcwnd = sp->cwnd;
142 150
143 getnstimeofday(&now); 151 getnstimeofday(&now);
@@ -155,13 +163,8 @@ static sctp_disposition_t jsctp_sf_eat_sack(struct net *net,
155 if (sp == asoc->peer.primary_path) 163 if (sp == asoc->peer.primary_path)
156 printl("*"); 164 printl("*");
157 165
158 if (sp->ipaddr.sa.sa_family == AF_INET) 166 printl("%pISc %2u %8u %8u %8u %8u %8u ",
159 printl("%pI4 ", &sp->ipaddr.v4.sin_addr); 167 &sp->ipaddr, sp->state, sp->cwnd, sp->ssthresh,
160 else
161 printl("%pI6 ", &sp->ipaddr.v6.sin6_addr);
162
163 printl("%2u %8u %8u %8u %8u %8u ",
164 sp->state, sp->cwnd, sp->ssthresh,
165 sp->flight_size, sp->partial_bytes_acked, 168 sp->flight_size, sp->partial_bytes_acked,
166 sp->pathmtu); 169 sp->pathmtu);
167 } 170 }
@@ -203,8 +206,8 @@ static __init int sctpprobe_init(void)
203 if (ret) 206 if (ret)
204 goto remove_proc; 207 goto remove_proc;
205 208
206 pr_info("probe registered (port=%d)\n", port); 209 pr_info("probe registered (port=%d/fwmark=%u) bufsize=%u\n",
207 210 port, fwmark, bufsize);
208 return 0; 211 return 0;
209 212
210remove_proc: 213remove_proc:
diff --git a/net/sctp/proc.c b/net/sctp/proc.c
index 62526c477050..0c0642156842 100644
--- a/net/sctp/proc.c
+++ b/net/sctp/proc.c
@@ -22,16 +22,10 @@
22 * 22 *
23 * Please send any bug reports or fixes you make to the 23 * Please send any bug reports or fixes you make to the
24 * email address(es): 24 * email address(es):
25 * lksctp developers <lksctp-developers@lists.sourceforge.net> 25 * lksctp developers <linux-sctp@vger.kernel.org>
26 *
27 * Or submit a bug report through the following website:
28 * http://www.sf.net/projects/lksctp
29 * 26 *
30 * Written or modified by: 27 * Written or modified by:
31 * Sridhar Samudrala <sri@us.ibm.com> 28 * Sridhar Samudrala <sri@us.ibm.com>
32 *
33 * Any bugs reported given to us we will try to fix... any fixes shared will
34 * be incorporated into the next SCTP release.
35 */ 29 */
36 30
37#include <linux/types.h> 31#include <linux/types.h>
@@ -232,7 +226,7 @@ static int sctp_eps_seq_show(struct seq_file *seq, void *v)
232 sk = epb->sk; 226 sk = epb->sk;
233 if (!net_eq(sock_net(sk), seq_file_net(seq))) 227 if (!net_eq(sock_net(sk), seq_file_net(seq)))
234 continue; 228 continue;
235 seq_printf(seq, "%8pK %8pK %-3d %-3d %-4d %-5d %5d %5lu ", ep, sk, 229 seq_printf(seq, "%8pK %8pK %-3d %-3d %-4d %-5d %5u %5lu ", ep, sk,
236 sctp_sk(sk)->type, sk->sk_state, hash, 230 sctp_sk(sk)->type, sk->sk_state, hash,
237 epb->bind_addr.port, 231 epb->bind_addr.port,
238 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)), 232 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)),
@@ -342,7 +336,7 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
342 continue; 336 continue;
343 seq_printf(seq, 337 seq_printf(seq,
344 "%8pK %8pK %-3d %-3d %-2d %-4d " 338 "%8pK %8pK %-3d %-3d %-2d %-4d "
345 "%4d %8d %8d %7d %5lu %-5d %5d ", 339 "%4d %8d %8d %7u %5lu %-5d %5d ",
346 assoc, sk, sctp_sk(sk)->type, sk->sk_state, 340 assoc, sk, sctp_sk(sk)->type, sk->sk_state,
347 assoc->state, hash, 341 assoc->state, hash,
348 assoc->assoc_id, 342 assoc->assoc_id,
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
index 4a17494d736c..5e17092f4ada 100644
--- a/net/sctp/protocol.c
+++ b/net/sctp/protocol.c
@@ -29,10 +29,7 @@
29 * 29 *
30 * Please send any bug reports or fixes you make to the 30 * Please send any bug reports or fixes you make to the
31 * email address(es): 31 * email address(es):
32 * lksctp developers <lksctp-developers@lists.sourceforge.net> 32 * lksctp developers <linux-sctp@vger.kernel.org>
33 *
34 * Or submit a bug report through the following website:
35 * http://www.sf.net/projects/lksctp
36 * 33 *
37 * Written or modified by: 34 * Written or modified by:
38 * La Monte H.P. Yarroll <piggy@acm.org> 35 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -41,9 +38,6 @@
41 * Sridhar Samudrala <sri@us.ibm.com> 38 * Sridhar Samudrala <sri@us.ibm.com>
42 * Daisy Chang <daisyc@us.ibm.com> 39 * Daisy Chang <daisyc@us.ibm.com>
43 * Ardelle Fan <ardelle.fan@intel.com> 40 * Ardelle Fan <ardelle.fan@intel.com>
44 *
45 * Any bugs reported given to us we will try to fix... any fixes shared will
46 * be incorporated into the next SCTP release.
47 */ 41 */
48 42
49#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 43#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -1547,7 +1541,7 @@ module_exit(sctp_exit);
1547 */ 1541 */
1548MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-132"); 1542MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-132");
1549MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-132"); 1543MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-132");
1550MODULE_AUTHOR("Linux Kernel SCTP developers <lksctp-developers@lists.sourceforge.net>"); 1544MODULE_AUTHOR("Linux Kernel SCTP developers <linux-sctp@vger.kernel.org>");
1551MODULE_DESCRIPTION("Support for the SCTP protocol (RFC2960)"); 1545MODULE_DESCRIPTION("Support for the SCTP protocol (RFC2960)");
1552module_param_named(no_checksums, sctp_checksum_disable, bool, 0644); 1546module_param_named(no_checksums, sctp_checksum_disable, bool, 0644);
1553MODULE_PARM_DESC(no_checksums, "Disable checksums computing and verification"); 1547MODULE_PARM_DESC(no_checksums, "Disable checksums computing and verification");
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 362ae6e2fd93..d244a23ab8d3 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -29,10 +29,7 @@
29 * 29 *
30 * Please send any bug reports or fixes you make to the 30 * Please send any bug reports or fixes you make to the
31 * email address(es): 31 * email address(es):
32 * lksctp developers <lksctp-developers@lists.sourceforge.net> 32 * lksctp developers <linux-sctp@vger.kernel.org>
33 *
34 * Or submit a bug report through the following website:
35 * http://www.sf.net/projects/lksctp
36 * 33 *
37 * Written or modified by: 34 * Written or modified by:
38 * La Monte H.P. Yarroll <piggy@acm.org> 35 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -45,9 +42,6 @@
45 * Daisy Chang <daisyc@us.ibm.com> 42 * Daisy Chang <daisyc@us.ibm.com>
46 * Ardelle Fan <ardelle.fan@intel.com> 43 * Ardelle Fan <ardelle.fan@intel.com>
47 * Kevin Gao <kevin.gao@intel.com> 44 * Kevin Gao <kevin.gao@intel.com>
48 *
49 * Any bugs reported given to us we will try to fix... any fixes shared will
50 * be incorporated into the next SCTP release.
51 */ 45 */
52 46
53#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 47#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -68,8 +62,12 @@
68#include <net/sctp/sctp.h> 62#include <net/sctp/sctp.h>
69#include <net/sctp/sm.h> 63#include <net/sctp/sm.h>
70 64
71static struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc, 65static struct sctp_chunk *sctp_make_control(const struct sctp_association *asoc,
72 __u8 type, __u8 flags, int paylen); 66 __u8 type, __u8 flags, int paylen);
67static struct sctp_chunk *sctp_make_data(const struct sctp_association *asoc,
68 __u8 flags, int paylen);
69static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc,
70 __u8 type, __u8 flags, int paylen);
73static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep, 71static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep,
74 const struct sctp_association *asoc, 72 const struct sctp_association *asoc,
75 const struct sctp_chunk *init_chunk, 73 const struct sctp_chunk *init_chunk,
@@ -82,6 +80,28 @@ static int sctp_process_param(struct sctp_association *asoc,
82static void *sctp_addto_param(struct sctp_chunk *chunk, int len, 80static void *sctp_addto_param(struct sctp_chunk *chunk, int len,
83 const void *data); 81 const void *data);
84 82
83/* Control chunk destructor */
84static void sctp_control_release_owner(struct sk_buff *skb)
85{
86 /*TODO: do memory release */
87}
88
89static void sctp_control_set_owner_w(struct sctp_chunk *chunk)
90{
91 struct sctp_association *asoc = chunk->asoc;
92 struct sk_buff *skb = chunk->skb;
93
94 /* TODO: properly account for control chunks.
95 * To do it right we'll need:
96 * 1) endpoint if association isn't known.
97 * 2) proper memory accounting.
98 *
99 * For now don't do anything for now.
100 */
101 skb->sk = asoc ? asoc->base.sk : NULL;
102 skb->destructor = sctp_control_release_owner;
103}
104
85/* What was the inbound interface for this chunk? */ 105/* What was the inbound interface for this chunk? */
86int sctp_chunk_iif(const struct sctp_chunk *chunk) 106int sctp_chunk_iif(const struct sctp_chunk *chunk)
87{ 107{
@@ -296,7 +316,7 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
296 * PLEASE DO NOT FIXME [This version does not support Host Name.] 316 * PLEASE DO NOT FIXME [This version does not support Host Name.]
297 */ 317 */
298 318
299 retval = sctp_make_chunk(asoc, SCTP_CID_INIT, 0, chunksize); 319 retval = sctp_make_control(asoc, SCTP_CID_INIT, 0, chunksize);
300 if (!retval) 320 if (!retval)
301 goto nodata; 321 goto nodata;
302 322
@@ -443,7 +463,7 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
443 num_ext); 463 num_ext);
444 464
445 /* Now allocate and fill out the chunk. */ 465 /* Now allocate and fill out the chunk. */
446 retval = sctp_make_chunk(asoc, SCTP_CID_INIT_ACK, 0, chunksize); 466 retval = sctp_make_control(asoc, SCTP_CID_INIT_ACK, 0, chunksize);
447 if (!retval) 467 if (!retval)
448 goto nomem_chunk; 468 goto nomem_chunk;
449 469
@@ -548,7 +568,7 @@ struct sctp_chunk *sctp_make_cookie_echo(const struct sctp_association *asoc,
548 cookie_len = asoc->peer.cookie_len; 568 cookie_len = asoc->peer.cookie_len;
549 569
550 /* Build a cookie echo chunk. */ 570 /* Build a cookie echo chunk. */
551 retval = sctp_make_chunk(asoc, SCTP_CID_COOKIE_ECHO, 0, cookie_len); 571 retval = sctp_make_control(asoc, SCTP_CID_COOKIE_ECHO, 0, cookie_len);
552 if (!retval) 572 if (!retval)
553 goto nodata; 573 goto nodata;
554 retval->subh.cookie_hdr = 574 retval->subh.cookie_hdr =
@@ -593,7 +613,7 @@ struct sctp_chunk *sctp_make_cookie_ack(const struct sctp_association *asoc,
593{ 613{
594 struct sctp_chunk *retval; 614 struct sctp_chunk *retval;
595 615
596 retval = sctp_make_chunk(asoc, SCTP_CID_COOKIE_ACK, 0, 0); 616 retval = sctp_make_control(asoc, SCTP_CID_COOKIE_ACK, 0, 0);
597 617
598 /* RFC 2960 6.4 Multi-homed SCTP Endpoints 618 /* RFC 2960 6.4 Multi-homed SCTP Endpoints
599 * 619 *
@@ -641,8 +661,8 @@ struct sctp_chunk *sctp_make_cwr(const struct sctp_association *asoc,
641 sctp_cwrhdr_t cwr; 661 sctp_cwrhdr_t cwr;
642 662
643 cwr.lowest_tsn = htonl(lowest_tsn); 663 cwr.lowest_tsn = htonl(lowest_tsn);
644 retval = sctp_make_chunk(asoc, SCTP_CID_ECN_CWR, 0, 664 retval = sctp_make_control(asoc, SCTP_CID_ECN_CWR, 0,
645 sizeof(sctp_cwrhdr_t)); 665 sizeof(sctp_cwrhdr_t));
646 666
647 if (!retval) 667 if (!retval)
648 goto nodata; 668 goto nodata;
@@ -675,8 +695,8 @@ struct sctp_chunk *sctp_make_ecne(const struct sctp_association *asoc,
675 sctp_ecnehdr_t ecne; 695 sctp_ecnehdr_t ecne;
676 696
677 ecne.lowest_tsn = htonl(lowest_tsn); 697 ecne.lowest_tsn = htonl(lowest_tsn);
678 retval = sctp_make_chunk(asoc, SCTP_CID_ECN_ECNE, 0, 698 retval = sctp_make_control(asoc, SCTP_CID_ECN_ECNE, 0,
679 sizeof(sctp_ecnehdr_t)); 699 sizeof(sctp_ecnehdr_t));
680 if (!retval) 700 if (!retval)
681 goto nodata; 701 goto nodata;
682 retval->subh.ecne_hdr = 702 retval->subh.ecne_hdr =
@@ -712,7 +732,7 @@ struct sctp_chunk *sctp_make_datafrag_empty(struct sctp_association *asoc,
712 dp.ssn = htons(ssn); 732 dp.ssn = htons(ssn);
713 733
714 chunk_len = sizeof(dp) + data_len; 734 chunk_len = sizeof(dp) + data_len;
715 retval = sctp_make_chunk(asoc, SCTP_CID_DATA, flags, chunk_len); 735 retval = sctp_make_data(asoc, flags, chunk_len);
716 if (!retval) 736 if (!retval)
717 goto nodata; 737 goto nodata;
718 738
@@ -759,7 +779,7 @@ struct sctp_chunk *sctp_make_sack(const struct sctp_association *asoc)
759 + sizeof(__u32) * num_dup_tsns; 779 + sizeof(__u32) * num_dup_tsns;
760 780
761 /* Create the chunk. */ 781 /* Create the chunk. */
762 retval = sctp_make_chunk(asoc, SCTP_CID_SACK, 0, len); 782 retval = sctp_make_control(asoc, SCTP_CID_SACK, 0, len);
763 if (!retval) 783 if (!retval)
764 goto nodata; 784 goto nodata;
765 785
@@ -838,8 +858,8 @@ struct sctp_chunk *sctp_make_shutdown(const struct sctp_association *asoc,
838 ctsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map); 858 ctsn = sctp_tsnmap_get_ctsn(&asoc->peer.tsn_map);
839 shut.cum_tsn_ack = htonl(ctsn); 859 shut.cum_tsn_ack = htonl(ctsn);
840 860
841 retval = sctp_make_chunk(asoc, SCTP_CID_SHUTDOWN, 0, 861 retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN, 0,
842 sizeof(sctp_shutdownhdr_t)); 862 sizeof(sctp_shutdownhdr_t));
843 if (!retval) 863 if (!retval)
844 goto nodata; 864 goto nodata;
845 865
@@ -857,7 +877,7 @@ struct sctp_chunk *sctp_make_shutdown_ack(const struct sctp_association *asoc,
857{ 877{
858 struct sctp_chunk *retval; 878 struct sctp_chunk *retval;
859 879
860 retval = sctp_make_chunk(asoc, SCTP_CID_SHUTDOWN_ACK, 0, 0); 880 retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN_ACK, 0, 0);
861 881
862 /* RFC 2960 6.4 Multi-homed SCTP Endpoints 882 /* RFC 2960 6.4 Multi-homed SCTP Endpoints
863 * 883 *
@@ -886,7 +906,7 @@ struct sctp_chunk *sctp_make_shutdown_complete(
886 */ 906 */
887 flags |= asoc ? 0 : SCTP_CHUNK_FLAG_T; 907 flags |= asoc ? 0 : SCTP_CHUNK_FLAG_T;
888 908
889 retval = sctp_make_chunk(asoc, SCTP_CID_SHUTDOWN_COMPLETE, flags, 0); 909 retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN_COMPLETE, flags, 0);
890 910
891 /* RFC 2960 6.4 Multi-homed SCTP Endpoints 911 /* RFC 2960 6.4 Multi-homed SCTP Endpoints
892 * 912 *
@@ -925,7 +945,7 @@ struct sctp_chunk *sctp_make_abort(const struct sctp_association *asoc,
925 flags = SCTP_CHUNK_FLAG_T; 945 flags = SCTP_CHUNK_FLAG_T;
926 } 946 }
927 947
928 retval = sctp_make_chunk(asoc, SCTP_CID_ABORT, flags, hint); 948 retval = sctp_make_control(asoc, SCTP_CID_ABORT, flags, hint);
929 949
930 /* RFC 2960 6.4 Multi-homed SCTP Endpoints 950 /* RFC 2960 6.4 Multi-homed SCTP Endpoints
931 * 951 *
@@ -1117,7 +1137,7 @@ struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *asoc,
1117 struct sctp_chunk *retval; 1137 struct sctp_chunk *retval;
1118 sctp_sender_hb_info_t hbinfo; 1138 sctp_sender_hb_info_t hbinfo;
1119 1139
1120 retval = sctp_make_chunk(asoc, SCTP_CID_HEARTBEAT, 0, sizeof(hbinfo)); 1140 retval = sctp_make_control(asoc, SCTP_CID_HEARTBEAT, 0, sizeof(hbinfo));
1121 1141
1122 if (!retval) 1142 if (!retval)
1123 goto nodata; 1143 goto nodata;
@@ -1145,7 +1165,7 @@ struct sctp_chunk *sctp_make_heartbeat_ack(const struct sctp_association *asoc,
1145{ 1165{
1146 struct sctp_chunk *retval; 1166 struct sctp_chunk *retval;
1147 1167
1148 retval = sctp_make_chunk(asoc, SCTP_CID_HEARTBEAT_ACK, 0, paylen); 1168 retval = sctp_make_control(asoc, SCTP_CID_HEARTBEAT_ACK, 0, paylen);
1149 if (!retval) 1169 if (!retval)
1150 goto nodata; 1170 goto nodata;
1151 1171
@@ -1177,8 +1197,8 @@ static struct sctp_chunk *sctp_make_op_error_space(
1177{ 1197{
1178 struct sctp_chunk *retval; 1198 struct sctp_chunk *retval;
1179 1199
1180 retval = sctp_make_chunk(asoc, SCTP_CID_ERROR, 0, 1200 retval = sctp_make_control(asoc, SCTP_CID_ERROR, 0,
1181 sizeof(sctp_errhdr_t) + size); 1201 sizeof(sctp_errhdr_t) + size);
1182 if (!retval) 1202 if (!retval)
1183 goto nodata; 1203 goto nodata;
1184 1204
@@ -1248,7 +1268,7 @@ struct sctp_chunk *sctp_make_auth(const struct sctp_association *asoc)
1248 if (unlikely(!hmac_desc)) 1268 if (unlikely(!hmac_desc))
1249 return NULL; 1269 return NULL;
1250 1270
1251 retval = sctp_make_chunk(asoc, SCTP_CID_AUTH, 0, 1271 retval = sctp_make_control(asoc, SCTP_CID_AUTH, 0,
1252 hmac_desc->hmac_len + sizeof(sctp_authhdr_t)); 1272 hmac_desc->hmac_len + sizeof(sctp_authhdr_t));
1253 if (!retval) 1273 if (!retval)
1254 return NULL; 1274 return NULL;
@@ -1351,8 +1371,8 @@ const union sctp_addr *sctp_source(const struct sctp_chunk *chunk)
1351/* Create a new chunk, setting the type and flags headers from the 1371/* Create a new chunk, setting the type and flags headers from the
1352 * arguments, reserving enough space for a 'paylen' byte payload. 1372 * arguments, reserving enough space for a 'paylen' byte payload.
1353 */ 1373 */
1354static struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc, 1374static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc,
1355 __u8 type, __u8 flags, int paylen) 1375 __u8 type, __u8 flags, int paylen)
1356{ 1376{
1357 struct sctp_chunk *retval; 1377 struct sctp_chunk *retval;
1358 sctp_chunkhdr_t *chunk_hdr; 1378 sctp_chunkhdr_t *chunk_hdr;
@@ -1385,14 +1405,27 @@ static struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc,
1385 if (sctp_auth_send_cid(type, asoc)) 1405 if (sctp_auth_send_cid(type, asoc))
1386 retval->auth = 1; 1406 retval->auth = 1;
1387 1407
1388 /* Set the skb to the belonging sock for accounting. */
1389 skb->sk = sk;
1390
1391 return retval; 1408 return retval;
1392nodata: 1409nodata:
1393 return NULL; 1410 return NULL;
1394} 1411}
1395 1412
1413static struct sctp_chunk *sctp_make_data(const struct sctp_association *asoc,
1414 __u8 flags, int paylen)
1415{
1416 return _sctp_make_chunk(asoc, SCTP_CID_DATA, flags, paylen);
1417}
1418
1419static struct sctp_chunk *sctp_make_control(const struct sctp_association *asoc,
1420 __u8 type, __u8 flags, int paylen)
1421{
1422 struct sctp_chunk *chunk = _sctp_make_chunk(asoc, type, flags, paylen);
1423
1424 if (chunk)
1425 sctp_control_set_owner_w(chunk);
1426
1427 return chunk;
1428}
1396 1429
1397/* Release the memory occupied by a chunk. */ 1430/* Release the memory occupied by a chunk. */
1398static void sctp_chunk_destroy(struct sctp_chunk *chunk) 1431static void sctp_chunk_destroy(struct sctp_chunk *chunk)
@@ -2207,25 +2240,23 @@ int sctp_verify_init(struct net *net, const struct sctp_association *asoc,
2207 struct sctp_chunk **errp) 2240 struct sctp_chunk **errp)
2208{ 2241{
2209 union sctp_params param; 2242 union sctp_params param;
2210 int has_cookie = 0; 2243 bool has_cookie = false;
2211 int result; 2244 int result;
2212 2245
2213 /* Verify stream values are non-zero. */ 2246 /* Check for missing mandatory parameters. Note: Initial TSN is
2214 if ((0 == peer_init->init_hdr.num_outbound_streams) || 2247 * also mandatory, but is not checked here since the valid range
2215 (0 == peer_init->init_hdr.num_inbound_streams) || 2248 * is 0..2**32-1. RFC4960, section 3.3.3.
2216 (0 == peer_init->init_hdr.init_tag) || 2249 */
2217 (SCTP_DEFAULT_MINWINDOW > ntohl(peer_init->init_hdr.a_rwnd))) { 2250 if (peer_init->init_hdr.num_outbound_streams == 0 ||
2218 2251 peer_init->init_hdr.num_inbound_streams == 0 ||
2252 peer_init->init_hdr.init_tag == 0 ||
2253 ntohl(peer_init->init_hdr.a_rwnd) < SCTP_DEFAULT_MINWINDOW)
2219 return sctp_process_inv_mandatory(asoc, chunk, errp); 2254 return sctp_process_inv_mandatory(asoc, chunk, errp);
2220 }
2221 2255
2222 /* Check for missing mandatory parameters. */
2223 sctp_walk_params(param, peer_init, init_hdr.params) { 2256 sctp_walk_params(param, peer_init, init_hdr.params) {
2224 2257 if (param.p->type == SCTP_PARAM_STATE_COOKIE)
2225 if (SCTP_PARAM_STATE_COOKIE == param.p->type) 2258 has_cookie = true;
2226 has_cookie = 1; 2259 }
2227
2228 } /* for (loop through all parameters) */
2229 2260
2230 /* There is a possibility that a parameter length was bad and 2261 /* There is a possibility that a parameter length was bad and
2231 * in that case we would have stoped walking the parameters. 2262 * in that case we would have stoped walking the parameters.
@@ -2733,7 +2764,7 @@ static struct sctp_chunk *sctp_make_asconf(struct sctp_association *asoc,
2733 length += addrlen; 2764 length += addrlen;
2734 2765
2735 /* Create the chunk. */ 2766 /* Create the chunk. */
2736 retval = sctp_make_chunk(asoc, SCTP_CID_ASCONF, 0, length); 2767 retval = sctp_make_control(asoc, SCTP_CID_ASCONF, 0, length);
2737 if (!retval) 2768 if (!retval)
2738 return NULL; 2769 return NULL;
2739 2770
@@ -2917,7 +2948,7 @@ static struct sctp_chunk *sctp_make_asconf_ack(const struct sctp_association *as
2917 int length = sizeof(asconf) + vparam_len; 2948 int length = sizeof(asconf) + vparam_len;
2918 2949
2919 /* Create the chunk. */ 2950 /* Create the chunk. */
2920 retval = sctp_make_chunk(asoc, SCTP_CID_ASCONF_ACK, 0, length); 2951 retval = sctp_make_control(asoc, SCTP_CID_ASCONF_ACK, 0, length);
2921 if (!retval) 2952 if (!retval)
2922 return NULL; 2953 return NULL;
2923 2954
@@ -3448,7 +3479,7 @@ struct sctp_chunk *sctp_make_fwdtsn(const struct sctp_association *asoc,
3448 3479
3449 hint = (nstreams + 1) * sizeof(__u32); 3480 hint = (nstreams + 1) * sizeof(__u32);
3450 3481
3451 retval = sctp_make_chunk(asoc, SCTP_CID_FWD_TSN, 0, hint); 3482 retval = sctp_make_control(asoc, SCTP_CID_FWD_TSN, 0, hint);
3452 3483
3453 if (!retval) 3484 if (!retval)
3454 return NULL; 3485 return NULL;
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 9da68852ee94..666c66842799 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -28,10 +28,7 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -42,9 +39,6 @@
42 * Daisy Chang <daisyc@us.ibm.com> 39 * Daisy Chang <daisyc@us.ibm.com>
43 * Sridhar Samudrala <sri@us.ibm.com> 40 * Sridhar Samudrala <sri@us.ibm.com>
44 * Ardelle Fan <ardelle.fan@intel.com> 41 * Ardelle Fan <ardelle.fan@intel.com>
45 *
46 * Any bugs reported given to us we will try to fix... any fixes shared will
47 * be incorporated into the next SCTP release.
48 */ 42 */
49 43
50#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 44#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index f6b7109195a6..dfe3f36ff2aa 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -28,10 +28,7 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -45,9 +42,6 @@
45 * Ardelle Fan <ardelle.fan@intel.com> 42 * Ardelle Fan <ardelle.fan@intel.com>
46 * Ryan Layer <rmlayer@us.ibm.com> 43 * Ryan Layer <rmlayer@us.ibm.com>
47 * Kevin Gao <kevin.gao@intel.com> 44 * Kevin Gao <kevin.gao@intel.com>
48 *
49 * Any bugs reported given to us we will try to fix... any fixes shared will
50 * be incorporated into the next SCTP release.
51 */ 45 */
52 46
53#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 47#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/sm_statetable.c b/net/sctp/sm_statetable.c
index 84d98d8a5a74..c5999b2dde7d 100644
--- a/net/sctp/sm_statetable.c
+++ b/net/sctp/sm_statetable.c
@@ -28,10 +28,7 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -41,9 +38,6 @@
41 * Daisy Chang <daisyc@us.ibm.com> 38 * Daisy Chang <daisyc@us.ibm.com>
42 * Ardelle Fan <ardelle.fan@intel.com> 39 * Ardelle Fan <ardelle.fan@intel.com>
43 * Sridhar Samudrala <sri@us.ibm.com> 40 * Sridhar Samudrala <sri@us.ibm.com>
44 *
45 * Any bugs reported given to us we will try to fix... any fixes shared will
46 * be incorporated into the next SCTP release.
47 */ 41 */
48 42
49#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 43#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index c6670d2e3f8d..911b71b26b0e 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -34,10 +34,7 @@
34 * 34 *
35 * Please send any bug reports or fixes you make to the 35 * Please send any bug reports or fixes you make to the
36 * email address(es): 36 * email address(es):
37 * lksctp developers <lksctp-developers@lists.sourceforge.net> 37 * lksctp developers <linux-sctp@vger.kernel.org>
38 *
39 * Or submit a bug report through the following website:
40 * http://www.sf.net/projects/lksctp
41 * 38 *
42 * Written or modified by: 39 * Written or modified by:
43 * La Monte H.P. Yarroll <piggy@acm.org> 40 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -52,9 +49,6 @@
52 * Ryan Layer <rmlayer@us.ibm.com> 49 * Ryan Layer <rmlayer@us.ibm.com>
53 * Anup Pemmaiah <pemmaiah@cc.usu.edu> 50 * Anup Pemmaiah <pemmaiah@cc.usu.edu>
54 * Kevin Gao <kevin.gao@intel.com> 51 * Kevin Gao <kevin.gao@intel.com>
55 *
56 * Any bugs reported given to us we will try to fix... any fixes shared will
57 * be incorporated into the next SCTP release.
58 */ 52 */
59 53
60#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 54#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
@@ -812,6 +806,9 @@ static int sctp_send_asconf_del_ip(struct sock *sk,
812 goto skip_mkasconf; 806 goto skip_mkasconf;
813 } 807 }
814 808
809 if (laddr == NULL)
810 return -EINVAL;
811
815 /* We do not need RCU protection throughout this loop 812 /* We do not need RCU protection throughout this loop
816 * because this is done under a socket lock from the 813 * because this is done under a socket lock from the
817 * setsockopt call. 814 * setsockopt call.
@@ -6182,7 +6179,7 @@ unsigned int sctp_poll(struct file *file, struct socket *sock, poll_table *wait)
6182 /* Is there any exceptional events? */ 6179 /* Is there any exceptional events? */
6183 if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) 6180 if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue))
6184 mask |= POLLERR | 6181 mask |= POLLERR |
6185 sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? POLLPRI : 0; 6182 (sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? POLLPRI : 0);
6186 if (sk->sk_shutdown & RCV_SHUTDOWN) 6183 if (sk->sk_shutdown & RCV_SHUTDOWN)
6187 mask |= POLLRDHUP | POLLIN | POLLRDNORM; 6184 mask |= POLLRDHUP | POLLIN | POLLRDNORM;
6188 if (sk->sk_shutdown == SHUTDOWN_MASK) 6185 if (sk->sk_shutdown == SHUTDOWN_MASK)
diff --git a/net/sctp/ssnmap.c b/net/sctp/ssnmap.c
index da8603523808..6007124aefa0 100644
--- a/net/sctp/ssnmap.c
+++ b/net/sctp/ssnmap.c
@@ -24,16 +24,10 @@
24 * 24 *
25 * Please send any bug reports or fixes you make to the 25 * Please send any bug reports or fixes you make to the
26 * email address(es): 26 * email address(es):
27 * lksctp developers <lksctp-developers@lists.sourceforge.net> 27 * lksctp developers <linux-sctp@vger.kernel.org>
28 *
29 * Or submit a bug report through the following website:
30 * http://www.sf.net/projects/lksctp
31 * 28 *
32 * Written or modified by: 29 * Written or modified by:
33 * Jon Grimm <jgrimm@us.ibm.com> 30 * Jon Grimm <jgrimm@us.ibm.com>
34 *
35 * Any bugs reported given to us we will try to fix... any fixes shared will
36 * be incorporated into the next SCTP release.
37 */ 31 */
38 32
39#include <linux/types.h> 33#include <linux/types.h>
diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
index 9a5c4c9eddaf..6b36561a1b3b 100644
--- a/net/sctp/sysctl.c
+++ b/net/sctp/sysctl.c
@@ -25,10 +25,7 @@
25 * 25 *
26 * Please send any bug reports or fixes you make to the 26 * Please send any bug reports or fixes you make to the
27 * email address(es): 27 * email address(es):
28 * lksctp developers <lksctp-developers@lists.sourceforge.net> 28 * lksctp developers <linux-sctp@vger.kernel.org>
29 *
30 * Or submit a bug report through the following website:
31 * http://www.sf.net/projects/lksctp
32 * 29 *
33 * Written or modified by: 30 * Written or modified by:
34 * Mingqin Liu <liuming@us.ibm.com> 31 * Mingqin Liu <liuming@us.ibm.com>
@@ -36,9 +33,6 @@
36 * Ardelle Fan <ardelle.fan@intel.com> 33 * Ardelle Fan <ardelle.fan@intel.com>
37 * Ryan Layer <rmlayer@us.ibm.com> 34 * Ryan Layer <rmlayer@us.ibm.com>
38 * Sridhar Samudrala <sri@us.ibm.com> 35 * Sridhar Samudrala <sri@us.ibm.com>
39 *
40 * Any bugs reported given to us we will try to fix... any fixes shared will
41 * be incorporated into the next SCTP release.
42 */ 36 */
43 37
44#include <net/sctp/structs.h> 38#include <net/sctp/structs.h>
diff --git a/net/sctp/transport.c b/net/sctp/transport.c
index 8fdd16046d66..e332efb124cc 100644
--- a/net/sctp/transport.c
+++ b/net/sctp/transport.c
@@ -30,10 +30,7 @@
30 * 30 *
31 * Please send any bug reports or fixes you make to the 31 * Please send any bug reports or fixes you make to the
32 * email address(es): 32 * email address(es):
33 * lksctp developers <lksctp-developers@lists.sourceforge.net> 33 * lksctp developers <linux-sctp@vger.kernel.org>
34 *
35 * Or submit a bug report through the following website:
36 * http://www.sf.net/projects/lksctp
37 * 34 *
38 * Written or modified by: 35 * Written or modified by:
39 * La Monte H.P. Yarroll <piggy@acm.org> 36 * La Monte H.P. Yarroll <piggy@acm.org>
@@ -43,9 +40,6 @@
43 * Hui Huang <hui.huang@nokia.com> 40 * Hui Huang <hui.huang@nokia.com>
44 * Sridhar Samudrala <sri@us.ibm.com> 41 * Sridhar Samudrala <sri@us.ibm.com>
45 * Ardelle Fan <ardelle.fan@intel.com> 42 * Ardelle Fan <ardelle.fan@intel.com>
46 *
47 * Any bugs reported given to us we will try to fix... any fixes shared will
48 * be incorporated into the next SCTP release.
49 */ 43 */
50 44
51#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 45#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
diff --git a/net/sctp/tsnmap.c b/net/sctp/tsnmap.c
index b46019568a86..fbda20028285 100644
--- a/net/sctp/tsnmap.c
+++ b/net/sctp/tsnmap.c
@@ -27,19 +27,13 @@
27 * 27 *
28 * Please send any bug reports or fixes you make to the 28 * Please send any bug reports or fixes you make to the
29 * email address(es): 29 * email address(es):
30 * lksctp developers <lksctp-developers@lists.sourceforge.net> 30 * lksctp developers <linux-sctp@vger.kernel.org>
31 *
32 * Or submit a bug report through the following website:
33 * http://www.sf.net/projects/lksctp
34 * 31 *
35 * Written or modified by: 32 * Written or modified by:
36 * La Monte H.P. Yarroll <piggy@acm.org> 33 * La Monte H.P. Yarroll <piggy@acm.org>
37 * Jon Grimm <jgrimm@us.ibm.com> 34 * Jon Grimm <jgrimm@us.ibm.com>
38 * Karl Knutson <karl@athena.chicago.il.us> 35 * Karl Knutson <karl@athena.chicago.il.us>
39 * Sridhar Samudrala <sri@us.ibm.com> 36 * Sridhar Samudrala <sri@us.ibm.com>
40 *
41 * Any bugs reported given to us we will try to fix... any fixes shared will
42 * be incorporated into the next SCTP release.
43 */ 37 */
44 38
45#include <linux/slab.h> 39#include <linux/slab.h>
diff --git a/net/sctp/ulpevent.c b/net/sctp/ulpevent.c
index 44a45dbee4df..81089ed65456 100644
--- a/net/sctp/ulpevent.c
+++ b/net/sctp/ulpevent.c
@@ -28,19 +28,13 @@
28 * 28 *
29 * Please send any bug reports or fixes you make to the 29 * Please send any bug reports or fixes you make to the
30 * email address(es): 30 * email address(es):
31 * lksctp developers <lksctp-developers@lists.sourceforge.net> 31 * lksctp developers <linux-sctp@vger.kernel.org>
32 *
33 * Or submit a bug report through the following website:
34 * http://www.sf.net/projects/lksctp
35 * 32 *
36 * Written or modified by: 33 * Written or modified by:
37 * Jon Grimm <jgrimm@us.ibm.com> 34 * Jon Grimm <jgrimm@us.ibm.com>
38 * La Monte H.P. Yarroll <piggy@acm.org> 35 * La Monte H.P. Yarroll <piggy@acm.org>
39 * Ardelle Fan <ardelle.fan@intel.com> 36 * Ardelle Fan <ardelle.fan@intel.com>
40 * Sridhar Samudrala <sri@us.ibm.com> 37 * Sridhar Samudrala <sri@us.ibm.com>
41 *
42 * Any bugs reported given to us we will try to fix... any fixes shared will
43 * be incorporated into the next SCTP release.
44 */ 38 */
45 39
46#include <linux/slab.h> 40#include <linux/slab.h>
diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c
index 04e3d470f877..1c1484ed605d 100644
--- a/net/sctp/ulpqueue.c
+++ b/net/sctp/ulpqueue.c
@@ -27,18 +27,12 @@
27 * 27 *
28 * Please send any bug reports or fixes you make to the 28 * Please send any bug reports or fixes you make to the
29 * email address(es): 29 * email address(es):
30 * lksctp developers <lksctp-developers@lists.sourceforge.net> 30 * lksctp developers <linux-sctp@vger.kernel.org>
31 *
32 * Or submit a bug report through the following website:
33 * http://www.sf.net/projects/lksctp
34 * 31 *
35 * Written or modified by: 32 * Written or modified by:
36 * Jon Grimm <jgrimm@us.ibm.com> 33 * Jon Grimm <jgrimm@us.ibm.com>
37 * La Monte H.P. Yarroll <piggy@acm.org> 34 * La Monte H.P. Yarroll <piggy@acm.org>
38 * Sridhar Samudrala <sri@us.ibm.com> 35 * Sridhar Samudrala <sri@us.ibm.com>
39 *
40 * Any bugs reported given to us we will try to fix... any fixes shared will
41 * be incorporated into the next SCTP release.
42 */ 36 */
43 37
44#include <linux/slab.h> 38#include <linux/slab.h>