Index: sys/netinet/tcp_lro.c =================================================================== --- sys/netinet/tcp_lro.c +++ sys/netinet/tcp_lro.c @@ -399,17 +399,13 @@ uint32_t y; repeat: - /* for small arrays bubble sort is faster */ + /* for small arrays insertion sort is faster */ if (size <= 12) { - for (x = 0; x != size; x++) { - for (y = x + 1; y != size; y++) { - if (parray[x].seq > parray[y].seq) { - /* swap entries */ - temp = parray[x]; - parray[x] = parray[y]; - parray[y] = temp; - } - } + for (x = 1; x < size; x++) { + temp = parray[x]; + for (y = x; y > 0 && temp.seq < parray[y - 1].seq; y--) + parray[y] = parray[y - 1]; + parray[y] = temp; } return; }