..since the only user is the bridge code, and everyone else just
frobs with br_write_lock_bh directly anyway.
--- linux-2.4.19-rxatomic-minimal/include/linux/netdevice.h.orig 2002-08-03
02:39:45.000000000 +0200
+++ linux-2.4.19-rxatomic-minimal/include/linux/netdevice.h 2002-10-02
+10:17:29.000000000 +0200
@@ -575,7 +575,6 @@
dev_kfree_skb(skb);
}
-extern void net_call_rx_atomic(void (*fn)(void));
#define HAVE_NETIF_RX 1
extern int netif_rx(struct sk_buff *skb);
extern int dev_ioctl(unsigned int cmd, void *);
--- linux-2.4.19-rxatomic-minimal/net/core/dev.c.orig 2002-08-03 02:39:46.000000000
+0200
+++ linux-2.4.19-rxatomic-minimal/net/core/dev.c 2002-10-02 10:17:29.000000000
++0200
@@ -1369,20 +1369,6 @@
}
}
-/**
- * net_call_rx_atomic
- * @fn: function to call
- *
- * Make a function call that is atomic with respect to the protocol
- * layers.
- */
-
-void net_call_rx_atomic(void (*fn)(void))
-{
- br_write_lock_bh(BR_NETPROTO_LOCK);
- fn();
- br_write_unlock_bh(BR_NETPROTO_LOCK);
-}
#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
void (*br_handle_frame_hook)(struct sk_buff *skb) = NULL;
--- linux-2.4.19-rxatomic-minimal/net/bridge/br.c.orig 2002-02-25 20:38:14.000000000
+0100
+++ linux-2.4.19-rxatomic-minimal/net/bridge/br.c 2002-10-02 10:17:29.000000000
++0200
@@ -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"
@@ -53,11 +53,6 @@
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;
@@ -67,7 +62,11 @@
{
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;
--- linux-2.4.19-rxatomic-minimal/net/netsyms.c 2002-08-03 02:39:46.000000000 +0200
+++ linux-2.4.19-rxatomic-minimal/net/netsyms.c 2002-10-02 06:55:03.000000000 +0200
@@ -585,7 +585,6 @@
EXPORT_SYMBOL(register_gifconf);
-EXPORT_SYMBOL(net_call_rx_atomic);
EXPORT_SYMBOL(softnet_data);
#endif /* CONFIG_NET */
_______________________________________________
Bridge mailing list
[EMAIL PROTECTED]
http://www.math.leidenuniv.nl/mailman/listinfo/bridge