]> 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)
commit1d2f81ca82a67154499b91e13806dd05772389c2
treeac2f30f99428c982ffecfd5f40e94407ae2f704d
parente3c7d01f7fadc7291c719072cb4021e0d373b0de
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