summaryrefslogtreecommitdiff
path: root/net/sctp/input.c
diff options
context:
space:
mode:
authorSridhar Samudrala <sri@us.ibm.com>2006-06-17 22:57:28 -0700
committerDavid S. Miller <davem@davemloft.net>2006-06-17 22:57:28 -0700
commit503b55fd77d11381b1950d1651d3bc782c0cc2cd (patch)
treea960542bcc10b97218a601a94e56e579595c0a2c /net/sctp/input.c
parent4c9f5d5305a23851e67471b147e0d459a7166717 (diff)
[SCTP]: Don't do CRC32C checksum over loopback.
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/input.c')
-rw-r--r--net/sctp/input.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/input.c b/net/sctp/input.c
index 70d6606e2812..42b66e74bbb5 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -141,7 +141,8 @@ int sctp_rcv(struct sk_buff *skb)
__skb_pull(skb, skb->h.raw - skb->data);
if (skb->len < sizeof(struct sctphdr))
goto discard_it;
- if (sctp_rcv_checksum(skb) < 0)
+ if ((skb->ip_summed != CHECKSUM_UNNECESSARY) &&
+ (sctp_rcv_checksum(skb) < 0))
goto discard_it;
skb_pull(skb, sizeof(struct sctphdr));