summaryrefslogtreecommitdiffstats
path: root/net/sctp
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2008-09-18 02:48:25 -0700
committerDavid S. Miller <davem@davemloft.net>2008-09-18 02:48:25 -0700
commita3028b8ed1e1e9930bfa70ce4555fb7f9fad3dcc (patch)
tree45f2e4fe7618dbf79f0a6ff74ddaa308ddc27277 /net/sctp
parent93821778def10ec1e69aa3ac10adee975dad4ff3 (diff)
downloadlinux-a3028b8ed1e1e9930bfa70ce4555fb7f9fad3dcc.tar.gz
linux-a3028b8ed1e1e9930bfa70ce4555fb7f9fad3dcc.tar.bz2
linux-a3028b8ed1e1e9930bfa70ce4555fb7f9fad3dcc.zip
sctp: set the skb->ip_summed correctly when sending over loopback.
Loopback used to clobber the ip_summed filed which sctp then used to figure out if it needed to do checksumming or not. Now that loopback doesn't do that any more, sctp needs to set the ip_summed field correctly. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp')
-rw-r--r--net/sctp/output.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/output.c b/net/sctp/output.c
index 0dc4a7dfb234..225c7123c41f 100644
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -533,7 +533,8 @@ int sctp_packet_transmit(struct sctp_packet *packet)
if (!(dst->dev->features & NETIF_F_NO_CSUM)) {
crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
crc32 = sctp_end_cksum(crc32);
- }
+ } else
+ nskb->ip_summed = CHECKSUM_UNNECESSARY;
/* 3) Put the resultant value into the checksum field in the
* common header, and leave the rest of the bits unchanged.