diff options
Diffstat (limited to 'net/sched')
-rw-r--r-- | net/sched/act_ipt.c | 6 | ||||
-rw-r--r-- | net/sched/sch_ingress.c | 5 |
2 files changed, 3 insertions, 8 deletions
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c index 6b407ece953c..fa006e06ce33 100644 --- a/net/sched/act_ipt.c +++ b/net/sched/act_ipt.c | |||
@@ -202,11 +202,7 @@ static int tcf_ipt(struct sk_buff *skb, struct tc_action *a, | |||
202 | /* yes, we have to worry about both in and out dev | 202 | /* yes, we have to worry about both in and out dev |
203 | worry later - danger - this API seems to have changed | 203 | worry later - danger - this API seems to have changed |
204 | from earlier kernels */ | 204 | from earlier kernels */ |
205 | 205 | ret = ipt->tcfi_t->u.kernel.target->target(skb, skb->dev, NULL, | |
206 | /* iptables targets take a double skb pointer in case the skb | ||
207 | * needs to be replaced. We don't own the skb, so this must not | ||
208 | * happen. The pskb_expand_head above should make sure of this */ | ||
209 | ret = ipt->tcfi_t->u.kernel.target->target(&skb, skb->dev, NULL, | ||
210 | ipt->tcfi_hook, | 206 | ipt->tcfi_hook, |
211 | ipt->tcfi_t->u.kernel.target, | 207 | ipt->tcfi_t->u.kernel.target, |
212 | ipt->tcfi_t->data); | 208 | ipt->tcfi_t->data); |
diff --git a/net/sched/sch_ingress.c b/net/sched/sch_ingress.c index 2d32fd27496e..3f8335e6ea2e 100644 --- a/net/sched/sch_ingress.c +++ b/net/sched/sch_ingress.c | |||
@@ -205,20 +205,19 @@ static unsigned int ingress_drop(struct Qdisc *sch) | |||
205 | #ifndef CONFIG_NET_CLS_ACT | 205 | #ifndef CONFIG_NET_CLS_ACT |
206 | #ifdef CONFIG_NETFILTER | 206 | #ifdef CONFIG_NETFILTER |
207 | static unsigned int | 207 | static unsigned int |
208 | ing_hook(unsigned int hook, struct sk_buff **pskb, | 208 | ing_hook(unsigned int hook, struct sk_buff *skb, |
209 | const struct net_device *indev, | 209 | const struct net_device *indev, |
210 | const struct net_device *outdev, | 210 | const struct net_device *outdev, |
211 | int (*okfn)(struct sk_buff *)) | 211 | int (*okfn)(struct sk_buff *)) |
212 | { | 212 | { |
213 | 213 | ||
214 | struct Qdisc *q; | 214 | struct Qdisc *q; |
215 | struct sk_buff *skb = *pskb; | ||
216 | struct net_device *dev = skb->dev; | 215 | struct net_device *dev = skb->dev; |
217 | int fwres=NF_ACCEPT; | 216 | int fwres=NF_ACCEPT; |
218 | 217 | ||
219 | DPRINTK("ing_hook: skb %s dev=%s len=%u\n", | 218 | DPRINTK("ing_hook: skb %s dev=%s len=%u\n", |
220 | skb->sk ? "(owned)" : "(unowned)", | 219 | skb->sk ? "(owned)" : "(unowned)", |
221 | skb->dev ? (*pskb)->dev->name : "(no dev)", | 220 | skb->dev ? skb->dev->name : "(no dev)", |
222 | skb->len); | 221 | skb->len); |
223 | 222 | ||
224 | if (dev->qdisc_ingress) { | 223 | if (dev->qdisc_ingress) { |