summaryrefslogtreecommitdiffstats
path: root/kernel/linux/net/bridge
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/linux/net/bridge')
-rw-r--r--kernel/linux/net/bridge/br.c2
-rw-r--r--kernel/linux/net/bridge/br_input.c5
-rw-r--r--kernel/linux/net/bridge/br_private.h10
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 */