On Tue, 2009-10-27 at 23:42 -0600, Jason Gunthorpe wrote:

> 
> I left the network namespace stuff alone and kept with the init_net
> situation..

Another possible solution ;)

 if (rt->idev->dev->flags & IFF_LOOPBACK){


> 
> -static int addr_resolve_remote(struct sockaddr *src_in,
> -                             struct sockaddr *dst_in,
> -                             struct rdma_dev_addr *addr)
> +static int addr_resolve(struct sockaddr *src_in,
> +                     struct sockaddr *dst_in,
> +                     struct rdma_dev_addr *addr)
>  {

A problem here, if a source address has not been specified then this
test is invalid.  I had to change it to use dst_in->sa_family. But as
you said, we should have validated sa_family before this point.    

>       if (src_in->sa_family == AF_INET) {
> -             return addr4_resolve_remote((struct sockaddr_in *) src_in,
> +             return addr4_resolve((struct sockaddr_in *) src_in,
>                       (struct sockaddr_in *) dst_in, addr);
>       } else
> -             return addr6_resolve_remote((struct sockaddr_in6 *) src_in,
> +             return addr6_resolve((struct sockaddr_in6 *) src_in,
>                       (struct sockaddr_in6 *) dst_in, addr);
>  }


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to