From: Akinobu Mita Use hlist_unhashed() rather than accessing inside data structure. Signed-off-by: Akinobu Mita Cc: "David S. Miller" Signed-off-by: Andrew Morton --- include/linux/list.h | 2 +- include/net/inet_timewait_sock.h | 2 +- include/net/sock.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff -puN include/linux/list.h~net-use-hlist_unhashed include/linux/list.h --- 25/include/linux/list.h~net-use-hlist_unhashed Mon Apr 24 14:40:19 2006 +++ 25-akpm/include/linux/list.h Mon Apr 24 14:40:19 2006 @@ -619,7 +619,7 @@ static inline void hlist_del_rcu(struct static inline void hlist_del_init(struct hlist_node *n) { - if (n->pprev) { + if (!hlist_unhashed(n)) { __hlist_del(n); INIT_HLIST_NODE(n); } diff -puN include/net/inet_timewait_sock.h~net-use-hlist_unhashed include/net/inet_timewait_sock.h --- 25/include/net/inet_timewait_sock.h~net-use-hlist_unhashed Mon Apr 24 14:40:19 2006 +++ 25-akpm/include/net/inet_timewait_sock.h Mon Apr 24 14:40:19 2006 @@ -150,7 +150,7 @@ static inline void inet_twsk_add_bind_no static inline int inet_twsk_dead_hashed(const struct inet_timewait_sock *tw) { - return tw->tw_death_node.pprev != NULL; + return !hlist_unhashed(&tw->tw_death_node); } static inline void inet_twsk_dead_node_init(struct inet_timewait_sock *tw) diff -puN include/net/sock.h~net-use-hlist_unhashed include/net/sock.h --- 25/include/net/sock.h~net-use-hlist_unhashed Mon Apr 24 14:40:19 2006 +++ 25-akpm/include/net/sock.h Mon Apr 24 14:40:19 2006 @@ -279,7 +279,7 @@ static inline int sk_unhashed(const stru static inline int sk_hashed(const struct sock *sk) { - return sk->sk_node.pprev != NULL; + return !sk_unhashed(sk); } static __inline__ void sk_node_init(struct hlist_node *node) _