[Bridge] Assertion failed in bridge code on 2.4.27-rc3

Stephen Hemminger shemminger at osdl.org
Wed Jul 28 16:28:02 PDT 2004


The code path for some ioctl's is different in 2.4 than 2.6 (it goes
through IP in 2.4).  Therefore the following is needed.

Signed-off-by: Stephen Hemminger <shemminger at osdl.org>

diff -Nru a/net/bridge/br_ioctl.c b/net/bridge/br_ioctl.c
--- a/net/bridge/br_ioctl.c	2004-07-28 16:28:49 -07:00
+++ b/net/bridge/br_ioctl.c	2004-07-28 16:28:49 -07:00
@@ -234,6 +234,7 @@
 int br_ioctl_deviceless_stub(unsigned long arg)
 {
 	unsigned long i[3];
+	int err;
 
 	if (!capable(CAP_NET_ADMIN))
 		return -EPERM;
@@ -241,8 +242,10 @@
 	if (copy_from_user(i, (void *)arg, 3*sizeof(unsigned long)))
 		return -EFAULT;
 
-	ASSERT_RTNL();
-	return  br_ioctl_deviceless(i[0], i[1], i[2]);
+	rtnl_lock();
+	err =  br_ioctl_deviceless(i[0], i[1], i[2]);
+	rtnl_unlock();
+	return err;
 }
 
 int br_ioctl(struct net_bridge *br, unsigned int cmd, unsigned long arg0, unsigned long arg1, unsigned long arg2)



More information about the Bridge mailing list