sctp: sctp gso should set feature with NETIF_F_SG when calling skb_segment
authorXin Long <lucien.xin@gmail.com>
Tue, 24 Jan 2017 06:05:16 +0000 (14:05 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Jun 2017 04:41:56 +0000 (06:41 +0200)
commitbf812fe92683cd52581824dc2c6767cbf04a72fb
tree294a300eca75f634d405f2142d16bc6cb6236656
parent12a583ddf02a976080f36f75139a9167a9975e68
sctp: sctp gso should set feature with NETIF_F_SG when calling skb_segment

[ Upstream commit 5207f3996338e1db71363fe381c81aaf1e54e4e3 ]

Now sctp gso puts segments into skb's frag_list, then processes these
segments in skb_segment. But skb_segment handles them only when gs is
enabled, as it's in the same branch with skb's frags.

Although almost all the NICs support sg other than some old ones, but
since commit 1e16aa3ddf86 ("net: gso: use feature flag argument in all
protocol gso handlers"), features &= skb->dev->hw_enc_features, and
xfrm_output_gso call skb_segment with features = 0, which means sctp
gso would call skb_segment with sg = 0, and skb_segment would not work
as expected.

This patch is to fix it by setting features param with NETIF_F_SG when
calling skb_segment so that it can go the right branch to process the
skb's frag_list.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sctp/offload.c