> ip*_ufo_append_data() is called now for each skb_is_gso() packet. > Before the patch it was called for UDP packets only. > > Could you please clarify, is it correct?
__ip_append_data is called for udp, raw, icmp and ping sockets. Of these, only udp packets have a path to get skb_is_gso() set: when __ip_append_data has been called before on this packet (using MSG_MORE) and the path entered ip_ufo_append_data in that call through the other conditions in the branch, which include sk->sk_type == SOCK_DGRAM. This function is not reached from other segmentable protocols like tcp, which call ip_queue_xmit in the ip layer. The exceptions are sending in ip_send_unicast_reply, but those will not have gso.