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 <[EMAIL PROTECTED]>

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)
_______________________________________________
Bridge mailing list
[EMAIL PROTECTED]
http://lists.osdl.org/mailman/listinfo/bridge

Reply via email to