diff options
Diffstat (limited to 'net/dccp')
-rw-r--r-- | net/dccp/ipv4.c | 1 | ||||
-rw-r--r-- | net/dccp/ipv6.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index 332639b56f4d..90a919afbed7 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -433,6 +433,7 @@ exit: | |||
433 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS); | 433 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_LISTENDROPS); |
434 | return NULL; | 434 | return NULL; |
435 | put_and_exit: | 435 | put_and_exit: |
436 | bh_unlock_sock(newsk); | ||
436 | sock_put(newsk); | 437 | sock_put(newsk); |
437 | goto exit; | 438 | goto exit; |
438 | } | 439 | } |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index b74f76117dcf..17ee85ce148d 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -271,7 +271,7 @@ static int dccp_v6_send_response(struct sock *sk, struct request_sock *req, | |||
271 | &ireq6->loc_addr, | 271 | &ireq6->loc_addr, |
272 | &ireq6->rmt_addr); | 272 | &ireq6->rmt_addr); |
273 | ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr); | 273 | ipv6_addr_copy(&fl6.daddr, &ireq6->rmt_addr); |
274 | err = ip6_xmit(sk, skb, &fl6, opt); | 274 | err = ip6_xmit(sk, skb, &fl6, opt, np->tclass); |
275 | err = net_xmit_eval(err); | 275 | err = net_xmit_eval(err); |
276 | } | 276 | } |
277 | 277 | ||
@@ -326,7 +326,7 @@ static void dccp_v6_ctl_send_reset(struct sock *sk, struct sk_buff *rxskb) | |||
326 | dst = ip6_dst_lookup_flow(ctl_sk, &fl6, NULL, false); | 326 | dst = ip6_dst_lookup_flow(ctl_sk, &fl6, NULL, false); |
327 | if (!IS_ERR(dst)) { | 327 | if (!IS_ERR(dst)) { |
328 | skb_dst_set(skb, dst); | 328 | skb_dst_set(skb, dst); |
329 | ip6_xmit(ctl_sk, skb, &fl6, NULL); | 329 | ip6_xmit(ctl_sk, skb, &fl6, NULL, 0); |
330 | DCCP_INC_STATS_BH(DCCP_MIB_OUTSEGS); | 330 | DCCP_INC_STATS_BH(DCCP_MIB_OUTSEGS); |
331 | DCCP_INC_STATS_BH(DCCP_MIB_OUTRSTS); | 331 | DCCP_INC_STATS_BH(DCCP_MIB_OUTRSTS); |
332 | return; | 332 | return; |