diff options
Diffstat (limited to 'kernel/linux/net/bridge')
-rw-r--r-- | kernel/linux/net/bridge/br.c | 2 | ||||
-rw-r--r-- | kernel/linux/net/bridge/br_input.c | 5 | ||||
-rw-r--r-- | kernel/linux/net/bridge/br_private.h | 10 |
3 files changed, 10 insertions, 7 deletions
diff --git a/kernel/linux/net/bridge/br.c b/kernel/linux/net/bridge/br.c index e60e348..15ce0ca 100644 --- a/kernel/linux/net/bridge/br.c +++ b/kernel/linux/net/bridge/br.c @@ -5,7 +5,7 @@ * Authors: * Lennert Buytenhek <buytenh@gnu.org> * - * $Id: br.c,v 1.1 2002/07/29 22:21:14 bdschuym Exp $ + * $Id: br.c,v 1.2 2002/08/22 17:49:34 bdschuym Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff --git a/kernel/linux/net/bridge/br_input.c b/kernel/linux/net/bridge/br_input.c index 0a5d3eb..1ac96f5 100644 --- a/kernel/linux/net/bridge/br_input.c +++ b/kernel/linux/net/bridge/br_input.c @@ -5,7 +5,7 @@ * Authors: * Lennert Buytenhek <buytenh@gnu.org> * - * $Id: br_input.c,v 1.1 2002/06/01 19:24:03 bdschuym Exp $ + * $Id: br_input.c,v 1.2 2002/08/22 17:49:34 bdschuym Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -23,6 +23,7 @@ defined(CONFIG_BRIDGE_EBT_BROUTE_MODULE) #include <linux/netfilter.h> #endif + unsigned char bridge_ula[6] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 }; static int br_pass_frame_up_finish(struct sk_buff *skb) @@ -170,9 +171,11 @@ err_nolock: handle_special_frame: if (!dest[5]) { br_stp_handle_bpdu(skb); + read_unlock(&br->lock); return 0; } + read_unlock(&br->lock); kfree_skb(skb); return 0; } diff --git a/kernel/linux/net/bridge/br_private.h b/kernel/linux/net/bridge/br_private.h index 5e33c9b..1f41044 100644 --- a/kernel/linux/net/bridge/br_private.h +++ b/kernel/linux/net/bridge/br_private.h @@ -4,7 +4,7 @@ * Authors: * Lennert Buytenhek <buytenh@gnu.org> * - * $Id: br_private.h,v 1.1 2002/06/01 19:24:03 bdschuym Exp $ + * $Id: br_private.h,v 1.2 2002/08/22 17:49:34 bdschuym Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -120,7 +120,7 @@ extern void br_dec_use_count(void); extern void br_inc_use_count(void); /* br_device.c */ -extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); +extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); extern void br_dev_setup(struct net_device *dev); extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); @@ -145,10 +145,10 @@ extern void br_fdb_insert(struct net_bridge *br, /* br_forward.c */ extern void br_deliver(struct net_bridge_port *to, struct sk_buff *skb); -extern int br_dev_queue_push_xmit(struct sk_buff *skb); +extern int br_dev_queue_push_xmit(struct sk_buff *skb); extern void br_forward(struct net_bridge_port *to, struct sk_buff *skb); -extern int br_forward_finish(struct sk_buff *skb); +extern int br_forward_finish(struct sk_buff *skb); extern void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, int clone); @@ -169,7 +169,7 @@ extern void br_get_port_ifindices(struct net_bridge *br, int *ifindices); /* br_input.c */ -extern int br_handle_frame_finish(struct sk_buff *skb); +extern int br_handle_frame_finish(struct sk_buff *skb); extern int br_handle_frame(struct sk_buff *skb); /* br_ioctl.c */ |