On Mon, Dec 12, 2011 at 11:52:26PM +0100, Davidlohr Bueso wrote: > include/c.h | 8 +++ > include/list.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 140 insertions(+), 0 deletions(-) Applied, thanks. > + struct list_head *part[MAX_LIST_LENGTH_BITS+1]; /* sorted partial lists > + -- last slot is a sentinel */ > + int lev; /* index into part[] */ > + int max_lev = 0; size_t > + struct list_head *list; > + > + if (list_empty(head)) > + return; > + > + memset(part, 0, sizeof(part)); > + > + head->prev->next = NULL; > + list = head->next; > + > + while (list) { > + struct list_head *cur = list; > + list = list->next; > + cur->next = NULL; > + > + for (lev = 0; part[lev]; lev++) { > + cur = merge(cmp, part[lev], cur); > + part[lev] = NULL; > + } > + if (lev > max_lev) { > + /* list passed to list_sort() too long for efficiency */ > + if (lev >= ARRAY_SIZE(part)-1) use -Wsign-compare to get more fun :-) Karel -- Karel Zak <kzak@xxxxxxxxxx> http://karelzak.blogspot.com -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html