From 0ac41e81462de20f87242caac2b9084c202c33b7 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Wed, 5 Dec 2007 01:25:03 -0800 Subject: [PATCH] [NETFILTER]: {nf_netlink,ip,ip6}_queue: use list_for_each_entry Use list_add_tail/list_for_each_entry instead of list_add and list_for_each_prev as a preparation for switching to RCU. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- net/ipv4/netfilter/ip_queue.c | 8 +++----- net/ipv6/netfilter/ip6_queue.c | 8 +++----- net/netfilter/nfnetlink_queue.c | 8 +++----- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c index 2966fbddce8..9e72246ede2 100644 --- a/net/ipv4/netfilter/ip_queue.c +++ b/net/ipv4/netfilter/ip_queue.c @@ -73,7 +73,7 @@ ipq_issue_verdict(struct ipq_queue_entry *entry, int verdict) static inline void __ipq_enqueue_entry(struct ipq_queue_entry *entry) { - list_add(&entry->list, &queue_list); + list_add_tail(&entry->list, &queue_list); queue_total++; } @@ -84,11 +84,9 @@ __ipq_enqueue_entry(struct ipq_queue_entry *entry) static inline struct ipq_queue_entry * __ipq_find_entry(ipq_cmpfn cmpfn, unsigned long data) { - struct list_head *p; - - list_for_each_prev(p, &queue_list) { - struct ipq_queue_entry *entry = (struct ipq_queue_entry *)p; + struct ipq_queue_entry *entry; + list_for_each_entry(entry, &queue_list, list) { if (!cmpfn || cmpfn(entry, data)) return entry; } diff --git a/net/ipv6/netfilter/ip6_queue.c b/net/ipv6/netfilter/ip6_queue.c index 7ff9915750a..243a00bcd3d 100644 --- a/net/ipv6/netfilter/ip6_queue.c +++ b/net/ipv6/netfilter/ip6_queue.c @@ -71,7 +71,7 @@ ipq_issue_verdict(struct ipq_queue_entry *entry, int verdict) static inline void __ipq_enqueue_entry(struct ipq_queue_entry *entry) { - list_add(&entry->list, &queue_list); + list_add_tail(&entry->list, &queue_list); queue_total++; } @@ -82,11 +82,9 @@ __ipq_enqueue_entry(struct ipq_queue_entry *entry) static inline struct ipq_queue_entry * __ipq_find_entry(ipq_cmpfn cmpfn, unsigned long data) { - struct list_head *p; - - list_for_each_prev(p, &queue_list) { - struct ipq_queue_entry *entry = (struct ipq_queue_entry *)p; + struct ipq_queue_entry *entry; + list_for_each_entry(entry, &queue_list, list) { if (!cmpfn || cmpfn(entry, data)) return entry; } diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c index 3a09f021065..74d5ed9490a 100644 --- a/net/netfilter/nfnetlink_queue.c +++ b/net/netfilter/nfnetlink_queue.c @@ -231,7 +231,7 @@ static inline void __enqueue_entry(struct nfqnl_instance *queue, struct nfqnl_queue_entry *entry) { - list_add(&entry->list, &queue->queue_list); + list_add_tail(&entry->list, &queue->queue_list); queue->queue_total++; } @@ -243,11 +243,9 @@ static inline struct nfqnl_queue_entry * __find_entry(struct nfqnl_instance *queue, nfqnl_cmpfn cmpfn, unsigned long data) { - struct list_head *p; - - list_for_each_prev(p, &queue->queue_list) { - struct nfqnl_queue_entry *entry = (struct nfqnl_queue_entry *)p; + struct nfqnl_queue_entry *entry; + list_for_each_entry(entry, &queue->queue_list, list) { if (!cmpfn || cmpfn(entry, data)) return entry; } -- 2.11.4.GIT