diff options
Diffstat (limited to 'net/sctp/input.c')
-rw-r--r-- | net/sctp/input.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/net/sctp/input.c b/net/sctp/input.c index 693fd0804810..d2e98803ffe3 100644 --- a/net/sctp/input.c +++ b/net/sctp/input.c | |||
@@ -83,14 +83,15 @@ static inline int sctp_rcv_checksum(struct sk_buff *skb) | |||
83 | { | 83 | { |
84 | struct sk_buff *list = skb_shinfo(skb)->frag_list; | 84 | struct sk_buff *list = skb_shinfo(skb)->frag_list; |
85 | struct sctphdr *sh = sctp_hdr(skb); | 85 | struct sctphdr *sh = sctp_hdr(skb); |
86 | __be32 cmp = sh->checksum; | 86 | __le32 cmp = sh->checksum; |
87 | __be32 val = sctp_start_cksum((__u8 *)sh, skb_headlen(skb)); | 87 | __le32 val; |
88 | __u32 tmp = sctp_start_cksum((__u8 *)sh, skb_headlen(skb)); | ||
88 | 89 | ||
89 | for (; list; list = list->next) | 90 | for (; list; list = list->next) |
90 | val = sctp_update_cksum((__u8 *)list->data, skb_headlen(list), | 91 | tmp = sctp_update_cksum((__u8 *)list->data, skb_headlen(list), |
91 | val); | 92 | tmp); |
92 | 93 | ||
93 | val = sctp_end_cksum(val); | 94 | val = sctp_end_cksum(tmp); |
94 | 95 | ||
95 | if (val != cmp) { | 96 | if (val != cmp) { |
96 | /* CRC failure, dump it. */ | 97 | /* CRC failure, dump it. */ |