diff options
Diffstat (limited to 'br-nf-bds/linux/net/core/netfilter.c')
-rw-r--r-- | br-nf-bds/linux/net/core/netfilter.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/br-nf-bds/linux/net/core/netfilter.c b/br-nf-bds/linux/net/core/netfilter.c index 198dad6..1a1cb88 100644 --- a/br-nf-bds/linux/net/core/netfilter.c +++ b/br-nf-bds/linux/net/core/netfilter.c @@ -418,8 +418,10 @@ static void nf_queue(struct sk_buff *skb, { int status; struct nf_info *info; +#ifdef CONFIG_BRIDGE_NF struct net_device *physindev; struct net_device *physoutdev; +#endif if (!queue_handler[pf].outfn) { kfree_skb(skb); @@ -442,16 +444,20 @@ static void nf_queue(struct sk_buff *skb, if (indev) dev_hold(indev); if (outdev) dev_hold(outdev); +#ifdef CONFIG_BRIDGE_NF if ((physindev = skb->physindev)) dev_hold(physindev); if ((physoutdev = skb->physoutdev)) dev_hold(physoutdev); +#endif status = queue_handler[pf].outfn(skb, info, queue_handler[pf].data); if (status < 0) { /* James M doesn't say fuck enough. */ if (indev) dev_put(indev); if (outdev) dev_put(outdev); +#ifdef CONFIG_BRIDGE_NF if (physindev) dev_put(physindev); if (physoutdev) dev_put(physoutdev); +#endif kfree(info); kfree_skb(skb); return; |