]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] use container_of() for rb_entry()
authorPaolo \'Blaisorblade\' Giarrusso <blaisorblade_spam@yahoo.it>
Wed, 20 Oct 2004 01:38:30 +0000 (18:38 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 20 Oct 2004 01:38:30 +0000 (18:38 -0700)
Use, in the rb_entry definition, the container_of macro instead of
reinventing the wheel; compared to using offset_of() as I did in the prev.
version, it has type safety checking.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade_spam@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/rbtree.h

index 3ae0c6e140aff8dde3bd40c6bb51df92300b0f63..4b7cc4fe366d2bc2a028b757edca43b9523ac6a4 100644 (file)
@@ -113,8 +113,7 @@ struct rb_root
 };
 
 #define RB_ROOT        (struct rb_root) { NULL, }
-#define        rb_entry(ptr, type, member)                                     \
-       ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
+#define        rb_entry(ptr, type, member) container_of(ptr, type, member)
 
 extern void rb_insert_color(struct rb_node *, struct rb_root *);
 extern void rb_erase(struct rb_node *, struct rb_root *);