sctp: Perform software checksum if packet has to be fragmented.
authorVlad Yasevich <vyasevich@gmail.com>
Wed, 16 Oct 2013 02:01:31 +0000 (22:01 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 4 Nov 2013 12:31:04 +0000 (04:31 -0800)
commitc69ee66768490b30127bc496921a3603c9366a10
tree3c4a07d56c703b8657b3d30a42c3d6abf622fd30
parent935be1dc2cafe04f1421e236f75d17878920631b
sctp: Perform software checksum if packet has to be fragmented.

[ Upstream commit d2dbbba77e95dff4b4f901fee236fef6d9552072 ]

IP/IPv6 fragmentation knows how to compute only TCP/UDP checksum.
This causes problems if SCTP packets has to be fragmented and
ipsummed has been set to PARTIAL due to checksum offload support.
This condition can happen when retransmitting after MTU discover,
or when INIT or other control chunks are larger then MTU.
Check for the rare fragmentation condition in SCTP and use software
checksum calculation in this case.

CC: Fan Du <fan.du@windriver.com>
Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sctp/output.c