diff options
Diffstat (limited to 'net/sctp/ipv6.c')
-rw-r--r-- | net/sctp/ipv6.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 7567e6f1a920..0f6259a6a932 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -21,9 +21,8 @@ | |||
21 | * See the GNU General Public License for more details. | 21 | * See the GNU General Public License for more details. |
22 | * | 22 | * |
23 | * You should have received a copy of the GNU General Public License | 23 | * You should have received a copy of the GNU General Public License |
24 | * along with GNU CC; see the file COPYING. If not, write to | 24 | * along with GNU CC; see the file COPYING. If not, see |
25 | * the Free Software Foundation, 59 Temple Place - Suite 330, | 25 | * <http://www.gnu.org/licenses/>. |
26 | * Boston, MA 02111-1307, USA. | ||
27 | * | 26 | * |
28 | * Please send any bug reports or fixes you make to the | 27 | * Please send any bug reports or fixes you make to the |
29 | * email address(es): | 28 | * email address(es): |
@@ -173,7 +172,8 @@ static void sctp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | |||
173 | 172 | ||
174 | switch (type) { | 173 | switch (type) { |
175 | case ICMPV6_PKT_TOOBIG: | 174 | case ICMPV6_PKT_TOOBIG: |
176 | sctp_icmp_frag_needed(sk, asoc, transport, ntohl(info)); | 175 | if (ip6_sk_accept_pmtu(sk)) |
176 | sctp_icmp_frag_needed(sk, asoc, transport, ntohl(info)); | ||
177 | goto out_unlock; | 177 | goto out_unlock; |
178 | case ICMPV6_PARAMPROB: | 178 | case ICMPV6_PARAMPROB: |
179 | if (ICMPV6_UNK_NEXTHDR == code) { | 179 | if (ICMPV6_UNK_NEXTHDR == code) { |
@@ -263,7 +263,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr, | |||
263 | } | 263 | } |
264 | 264 | ||
265 | final_p = fl6_update_dst(fl6, np->opt, &final); | 265 | final_p = fl6_update_dst(fl6, np->opt, &final); |
266 | dst = ip6_dst_lookup_flow(sk, fl6, final_p, false); | 266 | dst = ip6_dst_lookup_flow(sk, fl6, final_p); |
267 | if (!asoc || saddr) | 267 | if (!asoc || saddr) |
268 | goto out; | 268 | goto out; |
269 | 269 | ||
@@ -322,7 +322,7 @@ static void sctp_v6_get_dst(struct sctp_transport *t, union sctp_addr *saddr, | |||
322 | fl6->saddr = baddr->v6.sin6_addr; | 322 | fl6->saddr = baddr->v6.sin6_addr; |
323 | fl6->fl6_sport = baddr->v6.sin6_port; | 323 | fl6->fl6_sport = baddr->v6.sin6_port; |
324 | final_p = fl6_update_dst(fl6, np->opt, &final); | 324 | final_p = fl6_update_dst(fl6, np->opt, &final); |
325 | dst = ip6_dst_lookup_flow(sk, fl6, final_p, false); | 325 | dst = ip6_dst_lookup_flow(sk, fl6, final_p); |
326 | } | 326 | } |
327 | 327 | ||
328 | out: | 328 | out: |
@@ -402,7 +402,7 @@ static void sctp_v6_copy_addrlist(struct list_head *addrlist, | |||
402 | } | 402 | } |
403 | 403 | ||
404 | /* Initialize a sockaddr_storage from in incoming skb. */ | 404 | /* Initialize a sockaddr_storage from in incoming skb. */ |
405 | static void sctp_v6_from_skb(union sctp_addr *addr,struct sk_buff *skb, | 405 | static void sctp_v6_from_skb(union sctp_addr *addr, struct sk_buff *skb, |
406 | int is_saddr) | 406 | int is_saddr) |
407 | { | 407 | { |
408 | __be16 *port; | 408 | __be16 *port; |