sctp: not return ENOMEM err back in sctp_packet_transmit
authorXin Long <lucien.xin@gmail.com>
Tue, 13 Sep 2016 18:04:23 +0000 (02:04 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Sep 2016 02:02:33 +0000 (22:02 -0400)
commit41001faf95faaff7c4f4f93c6bb544ee227ad0cc
treeac2f30f99428c982ffecfd5f40e94407ae2f704d
parent83dbc3d4a38411ef38f680d7045c8478cc9c5a56
sctp: not return ENOMEM err back in sctp_packet_transmit

As David and Marcelo's suggestion, ENOMEM err shouldn't return back to
user in transmit path. Instead, sctp's retransmit would take care of
the chunks that fail to send because of ENOMEM.

This patch is only to do some release job when alloc_skb fails, not to
return ENOMEM back any more.

Besides, it also cleans up sctp_packet_transmit's err path, and fixes
some issues in err path:

 - It didn't free the head skb in nomem: path.
 - No need to check nskb in no_route: path.
 - It should goto err: path if alloc_skb fails for head.
 - Not all the NOMEMs should free nskb.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/output.c