diff options
author | Paul Moore <pmoore@redhat.com> | 2013-11-26 17:32:55 -0500 |
---|---|---|
committer | Paul Moore <pmoore@redhat.com> | 2013-11-26 17:32:55 -0500 |
commit | dd0a11815a339d6deeea8357574f8126a8404c92 (patch) | |
tree | c3c743ac6323e1caf9e987d6946cc4b2333a8256 /net/sctp | |
parent | 42d64e1add3a1ce8a787116036163b8724362145 (diff) | |
parent | 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 (diff) |
Merge tag 'v3.12'
Linux 3.12
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/associola.c | 8 | ||||
-rw-r--r-- | net/sctp/auth.c | 8 | ||||
-rw-r--r-- | net/sctp/bind_addr.c | 8 | ||||
-rw-r--r-- | net/sctp/chunk.c | 12 | ||||
-rw-r--r-- | net/sctp/command.c | 8 | ||||
-rw-r--r-- | net/sctp/debug.c | 8 | ||||
-rw-r--r-- | net/sctp/endpointola.c | 8 | ||||
-rw-r--r-- | net/sctp/input.c | 21 | ||||
-rw-r--r-- | net/sctp/inqueue.c | 8 | ||||
-rw-r--r-- | net/sctp/ipv6.c | 54 | ||||
-rw-r--r-- | net/sctp/objcnt.c | 8 | ||||
-rw-r--r-- | net/sctp/output.c | 11 | ||||
-rw-r--r-- | net/sctp/outqueue.c | 8 | ||||
-rw-r--r-- | net/sctp/primitive.c | 8 | ||||
-rw-r--r-- | net/sctp/probe.c | 27 | ||||
-rw-r--r-- | net/sctp/proc.c | 12 | ||||
-rw-r--r-- | net/sctp/protocol.c | 10 | ||||
-rw-r--r-- | net/sctp/sm_make_chunk.c | 133 | ||||
-rw-r--r-- | net/sctp/sm_sideeffect.c | 8 | ||||
-rw-r--r-- | net/sctp/sm_statefuns.c | 8 | ||||
-rw-r--r-- | net/sctp/sm_statetable.c | 8 | ||||
-rw-r--r-- | net/sctp/socket.c | 13 | ||||
-rw-r--r-- | net/sctp/ssnmap.c | 8 | ||||
-rw-r--r-- | net/sctp/sysctl.c | 8 | ||||
-rw-r--r-- | net/sctp/transport.c | 8 | ||||
-rw-r--r-- | net/sctp/tsnmap.c | 8 | ||||
-rw-r--r-- | net/sctp/ulpevent.c | 8 | ||||
-rw-r--r-- | net/sctp/ulpqueue.c | 8 |
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. */ | ||
214 | static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport) | 207 | static 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 | ||
348 | out: | 326 | out: |
@@ -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; | |||
46 | MODULE_PARM_DESC(port, "Port to match (0=all)"); | 46 | MODULE_PARM_DESC(port, "Port to match (0=all)"); |
47 | module_param(port, int, 0); | 47 | module_param(port, int, 0); |
48 | 48 | ||
49 | static unsigned int fwmark __read_mostly = 0; | ||
50 | MODULE_PARM_DESC(fwmark, "skb mark to match (0=no mark)"); | ||
51 | module_param(fwmark, uint, 0); | ||
52 | |||
49 | static int bufsize __read_mostly = 64 * 1024; | 53 | static int bufsize __read_mostly = 64 * 1024; |
50 | MODULE_PARM_DESC(bufsize, "Log buffer size (default 64k)"); | 54 | MODULE_PARM_DESC(bufsize, "Log buffer size (default 64k)"); |
51 | module_param(bufsize, int, 0); | 55 | module_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 | ||
210 | remove_proc: | 213 | remove_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 | */ |
1548 | MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-132"); | 1542 | MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-132"); |
1549 | MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-132"); | 1543 | MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-132"); |
1550 | MODULE_AUTHOR("Linux Kernel SCTP developers <lksctp-developers@lists.sourceforge.net>"); | 1544 | MODULE_AUTHOR("Linux Kernel SCTP developers <linux-sctp@vger.kernel.org>"); |
1551 | MODULE_DESCRIPTION("Support for the SCTP protocol (RFC2960)"); | 1545 | MODULE_DESCRIPTION("Support for the SCTP protocol (RFC2960)"); |
1552 | module_param_named(no_checksums, sctp_checksum_disable, bool, 0644); | 1546 | module_param_named(no_checksums, sctp_checksum_disable, bool, 0644); |
1553 | MODULE_PARM_DESC(no_checksums, "Disable checksums computing and verification"); | 1547 | MODULE_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 | ||
71 | static struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc, | 65 | static 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); |
67 | static struct sctp_chunk *sctp_make_data(const struct sctp_association *asoc, | ||
68 | __u8 flags, int paylen); | ||
69 | static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc, | ||
70 | __u8 type, __u8 flags, int paylen); | ||
73 | static sctp_cookie_param_t *sctp_pack_cookie(const struct sctp_endpoint *ep, | 71 | static 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, | |||
82 | static void *sctp_addto_param(struct sctp_chunk *chunk, int len, | 80 | static void *sctp_addto_param(struct sctp_chunk *chunk, int len, |
83 | const void *data); | 81 | const void *data); |
84 | 82 | ||
83 | /* Control chunk destructor */ | ||
84 | static void sctp_control_release_owner(struct sk_buff *skb) | ||
85 | { | ||
86 | /*TODO: do memory release */ | ||
87 | } | ||
88 | |||
89 | static 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? */ |
86 | int sctp_chunk_iif(const struct sctp_chunk *chunk) | 106 | int 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 | */ |
1354 | static struct sctp_chunk *sctp_make_chunk(const struct sctp_association *asoc, | 1374 | static 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; |
1392 | nodata: | 1409 | nodata: |
1393 | return NULL; | 1410 | return NULL; |
1394 | } | 1411 | } |
1395 | 1412 | ||
1413 | static 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 | |||
1419 | static 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. */ |
1398 | static void sctp_chunk_destroy(struct sctp_chunk *chunk) | 1431 | static 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> |