diff options
Diffstat (limited to 'br-nf-bds/linux/net/core')
-rw-r--r-- | br-nf-bds/linux/net/core/netfilter.c | 6 | ||||
-rw-r--r-- | br-nf-bds/linux/net/core/skbuff.c | 8 |
2 files changed, 13 insertions, 1 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; diff --git a/br-nf-bds/linux/net/core/skbuff.c b/br-nf-bds/linux/net/core/skbuff.c index d492fed..0e9e70b 100644 --- a/br-nf-bds/linux/net/core/skbuff.c +++ b/br-nf-bds/linux/net/core/skbuff.c @@ -4,7 +4,7 @@ * Authors: Alan Cox <iiitac@pyr.swan.ac.uk> * Florian La Roche <rzsfl@rz.uni-sb.de> * - * Version: $Id: skbuff.c,v 1.2 2002/08/24 08:45:29 bdschuym Exp $ + * Version: $Id: skbuff.c,v 1.3 2002/08/24 16:24:13 bdschuym Exp $ * * Fixes: * Alan Cox : Fixed the worst of the load balancer bugs. @@ -231,8 +231,10 @@ static inline void skb_headerinit(void *p, kmem_cache_t *cache, skb->sk = NULL; skb->stamp.tv_sec=0; /* No idea about time */ skb->dev = NULL; +#ifdef CONFIG_BRIDGE_NF skb->physindev = NULL; skb->physoutdev = NULL; +#endif skb->dst = NULL; memset(skb->cb, 0, sizeof(skb->cb)); skb->pkt_type = PACKET_HOST; /* Default type */ @@ -364,8 +366,10 @@ struct sk_buff *skb_clone(struct sk_buff *skb, int gfp_mask) n->sk = NULL; C(stamp); C(dev); +#ifdef CONFIG_BRIDGE_NF C(physindev); C(physoutdev); +#endif C(h); C(nh); C(mac); @@ -421,8 +425,10 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old) new->list=NULL; new->sk=NULL; new->dev=old->dev; +#ifdef CONFIG_BRIDGE_NF new->physindev=old->physindev; new->physoutdev=old->physoutdev; +#endif new->priority=old->priority; new->protocol=old->protocol; new->dst=dst_clone(old->dst); |