]> err.no Git - linux-2.6/blobdiff - net/ipv4/ip_sockglue.c
[MAC80211]: remove turbo modes
[linux-2.6] / net / ipv4 / ip_sockglue.c
index 4d544573f48adb373e9553141702250a350e3f4e..b2b3053dfef75ebb214e7f2b111cc3b6eb54631a 100644 (file)
@@ -602,7 +602,7 @@ static int do_ip_setsockopt(struct sock *sk, int level,
                                dev_put(dev);
                        }
                } else
-                       dev = __dev_get_by_index(mreq.imr_ifindex);
+                       dev = __dev_get_by_index(&init_net, mreq.imr_ifindex);
 
 
                err = -EADDRNOTAVAIL;
@@ -625,6 +625,10 @@ static int do_ip_setsockopt(struct sock *sk, int level,
        {
                struct ip_mreqn mreq;
 
+               err = -EPROTO;
+               if (inet_sk(sk)->is_icsk)
+                       break;
+
                if (optlen < sizeof(struct ip_mreq))
                        goto e_inval;
                err = -EFAULT;