i'm sure i'm misreading something, but when i look at the macro definition of "__list_for_each" in list.h: #define __list_for_each(pos, head) \ for (pos = (head)->next; pos != (head); pos = pos->next) i could swear that this traversal will visit each node in the list except for the initial head element. look closely: given a starting address of "head", the initialization starts things off at (head)->next, and continues traversing as long as pos != head. so wouldn't this traversal end up *not* visiting the list element addressed by "head" itself? or is that what it's supposed to do? rday -- ======================================================================== Robert P. J. Day Linux Consulting, Training and Annoying Kernel Pedantry: Have classroom, will lecture. http://crashcourse.ca Waterloo, Ontario, CANADA ======================================================================== -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ