]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/ipv6/af_inet6.c
Merge tag 'v2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / net / ipv6 / af_inet6.c
index 56b9bf2516f4d45b5b866e1e3086f54a05a7b530..54e8e42f7a88ad675aae5fb4782d6ce36d9a4ba9 100644 (file)
@@ -343,7 +343,8 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
                         */
                        v4addr = LOOPBACK4_IPV6;
                        if (!(addr_type & IPV6_ADDR_MULTICAST)) {
-                               if (!ipv6_chk_addr(net, &addr->sin6_addr,
+                               if (!inet->transparent &&
+                                   !ipv6_chk_addr(net, &addr->sin6_addr,
                                                   dev, 0)) {
                                        err = -EADDRNOTAVAIL;
                                        goto out_unlock;
@@ -467,7 +468,7 @@ int inet6_getname(struct socket *sock, struct sockaddr *uaddr,
        if (ipv6_addr_type(&sin->sin6_addr) & IPV6_ADDR_LINKLOCAL)
                sin->sin6_scope_id = sk->sk_bound_dev_if;
        *uaddr_len = sizeof(*sin);
-       return(0);
+       return 0;
 }
 
 EXPORT_SYMBOL(inet6_getname);
@@ -488,7 +489,7 @@ int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
        case SIOCADDRT:
        case SIOCDELRT:
 
-               return(ipv6_route_ioctl(net, cmd, (void __user *)arg));
+               return ipv6_route_ioctl(net, cmd, (void __user *)arg);
 
        case SIOCSIFADDR:
                return addrconf_add_ifaddr(net, (void __user *) arg);
@@ -502,7 +503,7 @@ int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                return sk->sk_prot->ioctl(sk, cmd, arg);
        }
        /*NOTREACHED*/
-       return(0);
+       return 0;
 }
 
 EXPORT_SYMBOL(inet6_ioctl);