gso: Do not perform partial GSO if number of partial segments is 1 or less

In the event that the number of partial segments is equal to 1 we don't
really need to perform partial segmentation offload.  As such we should
skip multiplying the MSS and instead just clear the partial_segs value
since it will not provide any gain to advertise the frame as being GSO when
it is a single frame.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Alexander Duyck 2016-05-02 09:38:12 -07:00 коммит произвёл David S. Miller
Родитель f132ae7c46
Коммит d7fb5a8049
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -3101,7 +3101,10 @@ struct sk_buff *skb_segment(struct sk_buff *head_skb,
*/
if (features & NETIF_F_GSO_PARTIAL) {
partial_segs = len / mss;
mss *= partial_segs;
if (partial_segs > 1)
mss *= partial_segs;
else
partial_segs = 0;
}
headroom = skb_headroom(head_skb);