[1] >> This patch doesn't ignore all the ENOMEN cases, only after msg is >> enqueued in out queue/send queue, in the lower layer, when alloc >> new skb and copy data from old skb, if it fails to alloc new skb, sctp >> will ignore this ENOMEM, as this msg will be taken care by retransmit >> mechanism, it's reasonable and also safe, user can't feel that. >> > > Yes, that part i got. > [2] >> But for the cases before enqueue, like in sctp_sendmsg, >> sctp_datamsg_from_user may return ENOMEM, this err will return >> back to user, and can't be ignored. >> > > The hard part is distinguishing between the above case and real > failure. > I am assuming in the case above user is _not_ required to send > again. But in the general case they are required to send again. > Correct? in case [1], user can't see the ENOMEM, ENOMEM is more like a internal err. in case [2], user will got the ENOMEM, they should resend this msg, It's the the general case mentioned-above > >> So I don't really think we should change something in manpage, what >> do you think ? maybe a little explanation there is also nice, :) > > > Yes, that would help. In particular it should be clear what user space > is expected to do. While this is about sctp - I am assuming equivalent > behavior for all callers of sendxxx() regardless of protocol. here sctp's behavior is actually same with tcp's, in tcp, tcp_transmit_skb also may fail to alloc skb, but it doesn't return any err to user, just like sctp_packet_transmit. That's why I don't think we should change something in manpage, as here sctp is consistent with tcp now. make sense ? -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html