Message ID | 1255471781.14513.7.camel@wilder.ibm.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
--- drivers/infiniband/core/addr.c.1759 2009-10-13 15:57:48.000000000 -0500 +++ drivers/infiniband/core/addr.c 2009-10-13 16:11:02.000000000 -0500 @@ -278,6 +278,15 @@ static int addr6_resolve_remote(struct s fl.nl_u.ip6_u.daddr = dst_in->sin6_addr; fl.nl_u.ip6_u.saddr = src_in->sin6_addr; + if (ipv6_addr_type(&dst_in->sin6_addr) & IPV6_ADDR_LINKLOCAL){ + if (!dst_in->sin6_scope_id) + return -EINVAL; + if ( src_in->sin6_scope_id && + (src_in->sin6_scope_id != dst_in->sin6_scope_id)) + return -EINVAL; + fl.oif = dst_in->sin6_scope_id; + } + dst = ip6_route_output(&init_net, NULL, &fl); if (!dst) return ret;