diff options
author | Michael Wang <wangyun@linux.vnet.ibm.com> | 2012-08-22 16:00:06 -0400 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-09-03 07:52:54 -0400 |
commit | 1c15b677097fc133cc23108d98e0f0846e94cd48 (patch) | |
tree | 89494d50d37478fd5528a9b9e603aefc3bc1ae7b | |
parent | 2a6decfd8a5fae0422c98a22aa6bc30224b8a3ec (diff) |
netfilter: pass 'nf_hook_ops' instead of 'list_head' to nf_queue()
Since 'list_for_each_continue_rcu' has already been replaced by
'list_for_each_entry_continue_rcu', pass 'list_head' to nf_queue() as a
parameter can not benefit us any more.
This patch will replace 'list_head' with 'nf_hook_ops' as the parameter of
nf_queue() and __nf_queue() to save code.
Signed-off-by: Michael Wang <wangyun@linux.vnet.ibm.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | net/netfilter/core.c | 4 | ||||
-rw-r--r-- | net/netfilter/nf_internals.h | 2 | ||||
-rw-r--r-- | net/netfilter/nf_queue.c | 8 |
3 files changed, 7 insertions, 7 deletions
diff --git a/net/netfilter/core.c b/net/netfilter/core.c index 0b119d94c31a..68912dadf13d 100644 --- a/net/netfilter/core.c +++ b/net/netfilter/core.c | |||
@@ -189,8 +189,8 @@ next_hook: | |||
189 | if (ret == 0) | 189 | if (ret == 0) |
190 | ret = -EPERM; | 190 | ret = -EPERM; |
191 | } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { | 191 | } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) { |
192 | int err = nf_queue(skb, &elem->list, pf, hook, indev, outdev, | 192 | int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn, |
193 | okfn, verdict >> NF_VERDICT_QBITS); | 193 | verdict >> NF_VERDICT_QBITS); |
194 | if (err < 0) { | 194 | if (err < 0) { |
195 | if (err == -ECANCELED) | 195 | if (err == -ECANCELED) |
196 | goto next_hook; | 196 | goto next_hook; |
diff --git a/net/netfilter/nf_internals.h b/net/netfilter/nf_internals.h index 2886231d20a8..3deec997be89 100644 --- a/net/netfilter/nf_internals.h +++ b/net/netfilter/nf_internals.h | |||
@@ -24,7 +24,7 @@ extern unsigned int nf_iterate(struct list_head *head, | |||
24 | 24 | ||
25 | /* nf_queue.c */ | 25 | /* nf_queue.c */ |
26 | extern int nf_queue(struct sk_buff *skb, | 26 | extern int nf_queue(struct sk_buff *skb, |
27 | struct list_head *elem, | 27 | struct nf_hook_ops *elem, |
28 | u_int8_t pf, unsigned int hook, | 28 | u_int8_t pf, unsigned int hook, |
29 | struct net_device *indev, | 29 | struct net_device *indev, |
30 | struct net_device *outdev, | 30 | struct net_device *outdev, |
diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c index 29fe102d3436..8d2cf9ec37a8 100644 --- a/net/netfilter/nf_queue.c +++ b/net/netfilter/nf_queue.c | |||
@@ -118,7 +118,7 @@ static void nf_queue_entry_release_refs(struct nf_queue_entry *entry) | |||
118 | * through nf_reinject(). | 118 | * through nf_reinject(). |
119 | */ | 119 | */ |
120 | static int __nf_queue(struct sk_buff *skb, | 120 | static int __nf_queue(struct sk_buff *skb, |
121 | struct list_head *elem, | 121 | struct nf_hook_ops *elem, |
122 | u_int8_t pf, unsigned int hook, | 122 | u_int8_t pf, unsigned int hook, |
123 | struct net_device *indev, | 123 | struct net_device *indev, |
124 | struct net_device *outdev, | 124 | struct net_device *outdev, |
@@ -155,7 +155,7 @@ static int __nf_queue(struct sk_buff *skb, | |||
155 | 155 | ||
156 | *entry = (struct nf_queue_entry) { | 156 | *entry = (struct nf_queue_entry) { |
157 | .skb = skb, | 157 | .skb = skb, |
158 | .elem = list_entry(elem, struct nf_hook_ops, list), | 158 | .elem = elem, |
159 | .pf = pf, | 159 | .pf = pf, |
160 | .hook = hook, | 160 | .hook = hook, |
161 | .indev = indev, | 161 | .indev = indev, |
@@ -225,7 +225,7 @@ static void nf_bridge_adjust_segmented_data(struct sk_buff *skb) | |||
225 | #endif | 225 | #endif |
226 | 226 | ||
227 | int nf_queue(struct sk_buff *skb, | 227 | int nf_queue(struct sk_buff *skb, |
228 | struct list_head *elem, | 228 | struct nf_hook_ops *elem, |
229 | u_int8_t pf, unsigned int hook, | 229 | u_int8_t pf, unsigned int hook, |
230 | struct net_device *indev, | 230 | struct net_device *indev, |
231 | struct net_device *outdev, | 231 | struct net_device *outdev, |
@@ -323,7 +323,7 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict) | |||
323 | local_bh_enable(); | 323 | local_bh_enable(); |
324 | break; | 324 | break; |
325 | case NF_QUEUE: | 325 | case NF_QUEUE: |
326 | err = __nf_queue(skb, &elem->list, entry->pf, entry->hook, | 326 | err = __nf_queue(skb, elem, entry->pf, entry->hook, |
327 | entry->indev, entry->outdev, entry->okfn, | 327 | entry->indev, entry->outdev, entry->okfn, |
328 | verdict >> NF_VERDICT_QBITS); | 328 | verdict >> NF_VERDICT_QBITS); |
329 | if (err < 0) { | 329 | if (err < 0) { |