sctp: set the skb->ip_summed correctly when sending over loopback.
authorVlad Yasevich <vladislav.yasevich@hp.com>
Thu, 18 Sep 2008 09:48:25 +0000 (02:48 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Sep 2008 09:48:25 +0000 (02:48 -0700)
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>
net/sctp/output.c

index 0dc4a7dfb23443eacbe4accda160787443646906..225c7123c41f8b2dfa3a629b7bb8590133ab146e 100644 (file)
@@ -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.