diff options
Diffstat (limited to 'net')
| -rw-r--r-- | net/sctp/output.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/net/sctp/output.c b/net/sctp/output.c index 319137340d15..e650978daf27 100644 --- a/net/sctp/output.c +++ b/net/sctp/output.c | |||
| @@ -390,7 +390,6 @@ int sctp_packet_transmit(struct sctp_packet *packet) | |||
| 390 | __u8 has_data = 0; | 390 | __u8 has_data = 0; |
| 391 | struct dst_entry *dst = tp->dst; | 391 | struct dst_entry *dst = tp->dst; |
| 392 | unsigned char *auth = NULL; /* pointer to auth in skb data */ | 392 | unsigned char *auth = NULL; /* pointer to auth in skb data */ |
| 393 | __u32 cksum_buf_len = sizeof(struct sctphdr); | ||
| 394 | 393 | ||
| 395 | pr_debug("%s: packet:%p\n", __func__, packet); | 394 | pr_debug("%s: packet:%p\n", __func__, packet); |
| 396 | 395 | ||
| @@ -493,7 +492,6 @@ int sctp_packet_transmit(struct sctp_packet *packet) | |||
| 493 | if (chunk == packet->auth) | 492 | if (chunk == packet->auth) |
| 494 | auth = skb_tail_pointer(nskb); | 493 | auth = skb_tail_pointer(nskb); |
| 495 | 494 | ||
| 496 | cksum_buf_len += chunk->skb->len; | ||
| 497 | memcpy(skb_put(nskb, chunk->skb->len), | 495 | memcpy(skb_put(nskb, chunk->skb->len), |
| 498 | chunk->skb->data, chunk->skb->len); | 496 | chunk->skb->data, chunk->skb->len); |
| 499 | 497 | ||
| @@ -538,12 +536,7 @@ int sctp_packet_transmit(struct sctp_packet *packet) | |||
| 538 | if (!sctp_checksum_disable) { | 536 | if (!sctp_checksum_disable) { |
| 539 | if (!(dst->dev->features & NETIF_F_SCTP_CSUM) || | 537 | if (!(dst->dev->features & NETIF_F_SCTP_CSUM) || |
| 540 | (dst_xfrm(dst) != NULL) || packet->ipfragok) { | 538 | (dst_xfrm(dst) != NULL) || packet->ipfragok) { |
| 541 | __u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len); | 539 | sh->checksum = sctp_compute_cksum(nskb, 0); |
| 542 | |||
| 543 | /* 3) Put the resultant value into the checksum field in the | ||
| 544 | * common header, and leave the rest of the bits unchanged. | ||
| 545 | */ | ||
| 546 | sh->checksum = sctp_end_cksum(crc32); | ||
| 547 | } else { | 540 | } else { |
| 548 | /* no need to seed pseudo checksum for SCTP */ | 541 | /* no need to seed pseudo checksum for SCTP */ |
| 549 | nskb->ip_summed = CHECKSUM_PARTIAL; | 542 | nskb->ip_summed = CHECKSUM_PARTIAL; |
