lkml.org 
[lkml]   [2004]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subjecthlist_add_after broken?
Date
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/

\
 
 \ /
  Last update: 2005-03-22 14:02    [W:0.050 / U:0.396 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site