diff options
Diffstat (limited to 'net/sctp/input.c')
-rw-r--r-- | net/sctp/input.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/sctp/input.c b/net/sctp/input.c index 42b66e74bbb5..03f65de75d88 100644 --- a/net/sctp/input.c +++ b/net/sctp/input.c | |||
@@ -228,7 +228,7 @@ int sctp_rcv(struct sk_buff *skb) | |||
228 | goto discard_release; | 228 | goto discard_release; |
229 | nf_reset(skb); | 229 | nf_reset(skb); |
230 | 230 | ||
231 | if (sk_filter(sk, skb, 1)) | 231 | if (sk_filter(sk, skb)) |
232 | goto discard_release; | 232 | goto discard_release; |
233 | 233 | ||
234 | /* Create an SCTP packet structure. */ | 234 | /* Create an SCTP packet structure. */ |
@@ -255,10 +255,13 @@ int sctp_rcv(struct sk_buff *skb) | |||
255 | */ | 255 | */ |
256 | sctp_bh_lock_sock(sk); | 256 | sctp_bh_lock_sock(sk); |
257 | 257 | ||
258 | if (sock_owned_by_user(sk)) | 258 | if (sock_owned_by_user(sk)) { |
259 | SCTP_INC_STATS_BH(SCTP_MIB_IN_PKT_BACKLOG); | ||
259 | sctp_add_backlog(sk, skb); | 260 | sctp_add_backlog(sk, skb); |
260 | else | 261 | } else { |
262 | SCTP_INC_STATS_BH(SCTP_MIB_IN_PKT_SOFTIRQ); | ||
261 | sctp_inq_push(&chunk->rcvr->inqueue, chunk); | 263 | sctp_inq_push(&chunk->rcvr->inqueue, chunk); |
264 | } | ||
262 | 265 | ||
263 | sctp_bh_unlock_sock(sk); | 266 | sctp_bh_unlock_sock(sk); |
264 | 267 | ||
@@ -271,6 +274,7 @@ int sctp_rcv(struct sk_buff *skb) | |||
271 | return 0; | 274 | return 0; |
272 | 275 | ||
273 | discard_it: | 276 | discard_it: |
277 | SCTP_INC_STATS_BH(SCTP_MIB_IN_PKT_DISCARDS); | ||
274 | kfree_skb(skb); | 278 | kfree_skb(skb); |
275 | return 0; | 279 | return 0; |
276 | 280 | ||