Skip to content

Commit

Permalink
sctp: fix GSO for IPv6
Browse files Browse the repository at this point in the history
commit 90017ac ("sctp: Add GSO support") didn't register SCTP GSO
offloading for IPv6 and yet didn't put any restrictions on generating
GSO packets while in IPv6, which causes all IPv6 GSO'ed packets to be
silently dropped.

The fix is to properly register the offload this time.

Fixes: 90017ac ("sctp: Add GSO support")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
marceloleitner authored and davem330 committed Jul 17, 2016
1 parent e5b13f3 commit c5c4e45
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion net/sctp/offload.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,28 @@ static const struct net_offload sctp_offload = {
},
};

static const struct net_offload sctp6_offload = {
.callbacks = {
.gso_segment = sctp_gso_segment,
},
};

int __init sctp_offload_init(void)
{
return inet_add_offload(&sctp_offload, IPPROTO_SCTP);
int ret;

ret = inet_add_offload(&sctp_offload, IPPROTO_SCTP);
if (ret)
goto out;

ret = inet6_add_offload(&sctp6_offload, IPPROTO_SCTP);
if (ret)
goto ipv4;

return ret;

ipv4:
inet_del_offload(&sctp_offload, IPPROTO_SCTP);
out:
return ret;
}

0 comments on commit c5c4e45

Please sign in to comment.