summaryrefslogtreecommitdiffstats
path: root/kernel/linux
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2002-09-29 18:27:32 +0000
committerBart De Schuymer <bdschuym@pandora.be>2002-09-29 18:27:32 +0000
commitb09e04bf343f1aae0cab4840e5594de59c80ef7b (patch)
treedf18aece9ba15b3301035b1ffed524bc36ec816d /kernel/linux
parent089e607e3af877fd69ed22dc9348af857ae68986 (diff)
unlock bridge lock when brouting
Diffstat (limited to 'kernel/linux')
-rw-r--r--kernel/linux/net/bridge/br_input.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/linux/net/bridge/br_input.c b/kernel/linux/net/bridge/br_input.c
index ffd8ccf..aed60eb 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.6 2002/09/16 21:06:14 bdschuym Exp $
+ * $Id: br_input.c,v 1.7 2002/09/29 18:27:32 bdschuym Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -149,8 +149,10 @@ int br_handle_frame(struct sk_buff *skb)
goto handle_special_frame;
if (p->state == BR_STATE_FORWARDING) {
- if (br_should_route_hook && br_should_route_hook(&skb))
+ if (br_should_route_hook && br_should_route_hook(&skb)) {
+ read_unlock(&br->lock);
return -1;
+ }
NF_HOOK(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
br_handle_frame_finish);