diff options
Diffstat (limited to 'net/dccp/ipv4.c')
-rw-r--r-- | net/dccp/ipv4.c | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index c363051a7f16..99e8afa7ba1e 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -914,7 +914,6 @@ int dccp_v4_rcv(struct sk_buff *skb) | |||
914 | { | 914 | { |
915 | const struct dccp_hdr *dh; | 915 | const struct dccp_hdr *dh; |
916 | struct sock *sk; | 916 | struct sock *sk; |
917 | int rc; | ||
918 | 917 | ||
919 | /* Step 1: Check header basics: */ | 918 | /* Step 1: Check header basics: */ |
920 | 919 | ||
@@ -984,28 +983,10 @@ int dccp_v4_rcv(struct sk_buff *skb) | |||
984 | goto do_time_wait; | 983 | goto do_time_wait; |
985 | } | 984 | } |
986 | 985 | ||
987 | if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) { | 986 | if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) |
988 | dccp_pr_debug("xfrm4_policy_check failed\n"); | ||
989 | goto discard_and_relse; | 987 | goto discard_and_relse; |
990 | } | ||
991 | |||
992 | if (sk_filter(sk, skb, 0)) { | ||
993 | dccp_pr_debug("sk_filter failed\n"); | ||
994 | goto discard_and_relse; | ||
995 | } | ||
996 | |||
997 | skb->dev = NULL; | ||
998 | 988 | ||
999 | bh_lock_sock(sk); | 989 | return sk_receive_skb(sk, skb); |
1000 | rc = 0; | ||
1001 | if (!sock_owned_by_user(sk)) | ||
1002 | rc = dccp_v4_do_rcv(sk, skb); | ||
1003 | else | ||
1004 | sk_add_backlog(sk, skb); | ||
1005 | bh_unlock_sock(sk); | ||
1006 | |||
1007 | sock_put(sk); | ||
1008 | return rc; | ||
1009 | 990 | ||
1010 | no_dccp_socket: | 991 | no_dccp_socket: |
1011 | if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) | 992 | if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) |