]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit69d13a0751039693dbc2a89294c06348eb128518
treeac2f30f99428c982ffecfd5f40e94407ae2f704d
parentd6595b8c985fdd579855afd58e36f8725c722385
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