From: 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 Signed-off-by: Andrew Morton --- 25-akpm/include/linux/rbtree.h | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) diff -puN include/linux/rbtree.h~use-container_of-for-rb_entry include/linux/rbtree.h --- 25/include/linux/rbtree.h~use-container_of-for-rb_entry Fri Oct 8 14:03:48 2004 +++ 25-akpm/include/linux/rbtree.h Fri Oct 8 14:03:48 2004 @@ -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 *); _