summaryrefslogtreecommitdiffstats
path: root/br-nf-bds/linux2.5/net
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2002-10-21 17:32:51 +0000
committerBart De Schuymer <bdschuym@pandora.be>2002-10-21 17:32:51 +0000
commit5a26c697c0df5323c0dddeeb7d18f0e45f291168 (patch)
tree9e4e3cc920086d5b0bb8bf2ee67b91abf4c24924 /br-nf-bds/linux2.5/net
parent239fbf344221c72f4d779ed3bd781185e5b315af (diff)
update to 2.5.42 + add #ifdef CONFIG_NETFILTER
Diffstat (limited to 'br-nf-bds/linux2.5/net')
-rw-r--r--br-nf-bds/linux2.5/net/bridge/br.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/br-nf-bds/linux2.5/net/bridge/br.c b/br-nf-bds/linux2.5/net/bridge/br.c
index c119197..e335de2 100644
--- a/br-nf-bds/linux2.5/net/bridge/br.c
+++ b/br-nf-bds/linux2.5/net/bridge/br.c
@@ -5,7 +5,7 @@
* Authors:
* Lennert Buytenhek <buytenh@gnu.org>
*
- * $Id: br.c,v 1.2 2002/09/18 18:22:13 bdschuym Exp $
+ * $Id: br.c,v 1.3 2002/10/21 17:32:51 bdschuym Exp $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -21,6 +21,7 @@
#include <linux/etherdevice.h>
#include <linux/init.h>
#include <linux/if_bridge.h>
+#include <linux/brlock.h>
#include <asm/uaccess.h>
#include "br_private.h"
@@ -44,8 +45,10 @@ static int __init br_init(void)
{
printk(KERN_INFO "NET4: Ethernet Bridge 008 for NET4.0\n");
+#ifdef CONFIG_NETFILTER
if (br_netfilter_init())
return 1;
+#endif
br_handle_frame_hook = br_handle_frame;
br_ioctl_hook = br_ioctl_deviceless_stub;
#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
@@ -57,11 +60,6 @@ static int __init br_init(void)
return 0;
}
-static void __br_clear_frame_hook(void)
-{
- br_handle_frame_hook = NULL;
-}
-
static void __br_clear_ioctl_hook(void)
{
br_ioctl_hook = NULL;
@@ -69,10 +67,16 @@ static void __br_clear_ioctl_hook(void)
static void __exit br_deinit(void)
{
+#ifdef CONFIG_NETFILTER
br_netfilter_fini();
+#endif
unregister_netdevice_notifier(&br_device_notifier);
br_call_ioctl_atomic(__br_clear_ioctl_hook);
- net_call_rx_atomic(__br_clear_frame_hook);
+
+ br_write_lock_bh(BR_NETPROTO_LOCK);
+ br_handle_frame_hook = NULL;
+ br_write_unlock_bh(BR_NETPROTO_LOCK);
+
#if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
br_fdb_get_hook = NULL;
br_fdb_put_hook = NULL;