Messages in this thread Patch in this message | | | From | "Pedro Emanuel M. D. Pinto" <> | Subject | hlist_add_after broken? | Date | Sat, 17 Apr 2004 23:30:34 +0100 |
| |
There is an inline function (hlist_add_after) in include/linux/list.h which I believe is broken. The algorithm used doesn't make sence to me so if it actually ok I would appreciate if someone could explain it to me. Below is a patch I made against version 2.6.1 of what I believe is a working function.
regards,
Pedro Pinto
--- include/linux/list.h.orig 2004-04-17 23:13:42.901457376 +0100 +++ include/linux/list.h 2004-04-17 23:17:28.943093824 +0100 @@ -525,9 +525,12 @@ static __inline__ void hlist_add_after(struct hlist_node *n, struct hlist_node *next) { - next->next = n->next; - *(next->pprev) = n; - n->next = next; + next->next = n->next; + n->next = next; + next->pprev = &n->next; + + if(next->next) + next->next->pprev = &next->next; }
#define hlist_entry(ptr, type, member) container_of(ptr,type,member) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |