]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/infiniband/core/addr.c
Merge branch 'audit.b50' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit...
[linux-2.6-omap-h63xx.git] / drivers / infiniband / core / addr.c
index c5c33d35f87d619bf4a04bd6cf878801d448298b..781ea59503737bdf558ca0391bfa6b75700f1702 100644 (file)
@@ -110,7 +110,7 @@ int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr)
        __be32 ip = ((struct sockaddr_in *) addr)->sin_addr.s_addr;
        int ret;
 
-       dev = ip_dev_find(ip);
+       dev = ip_dev_find(&init_net, ip);
        if (!dev)
                return -EADDRNOTAVAIL;
 
@@ -154,15 +154,14 @@ static void addr_send_arp(struct sockaddr_in *dst_in)
 {
        struct rtable *rt;
        struct flowi fl;
-       u32 dst_ip = dst_in->sin_addr.s_addr;
+       __be32 dst_ip = dst_in->sin_addr.s_addr;
 
        memset(&fl, 0, sizeof fl);
        fl.nl_u.ip4_u.daddr = dst_ip;
-       if (ip_route_output_key(&rt, &fl))
+       if (ip_route_output_key(&init_net, &rt, &fl))
                return;
 
-       arp_send(ARPOP_REQUEST, ETH_P_ARP, rt->rt_gateway, rt->idev->dev,
-                rt->rt_src, NULL, rt->idev->dev->dev_addr, NULL);
+       neigh_event_send(rt->u.dst.neighbour, NULL);
        ip_rt_put(rt);
 }
 
@@ -170,8 +169,8 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,
                               struct sockaddr_in *dst_in,
                               struct rdma_dev_addr *addr)
 {
-       u32 src_ip = src_in->sin_addr.s_addr;
-       u32 dst_ip = dst_in->sin_addr.s_addr;
+       __be32 src_ip = src_in->sin_addr.s_addr;
+       __be32 dst_ip = dst_in->sin_addr.s_addr;
        struct flowi fl;
        struct rtable *rt;
        struct neighbour *neigh;
@@ -180,7 +179,7 @@ static int addr_resolve_remote(struct sockaddr_in *src_in,
        memset(&fl, 0, sizeof fl);
        fl.nl_u.ip4_u.daddr = dst_ip;
        fl.nl_u.ip4_u.saddr = src_ip;
-       ret = ip_route_output_key(&rt, &fl);
+       ret = ip_route_output_key(&init_net, &rt, &fl);
        if (ret)
                goto out;
 
@@ -258,19 +257,19 @@ static int addr_resolve_local(struct sockaddr_in *src_in,
                              struct rdma_dev_addr *addr)
 {
        struct net_device *dev;
-       u32 src_ip = src_in->sin_addr.s_addr;
+       __be32 src_ip = src_in->sin_addr.s_addr;
        __be32 dst_ip = dst_in->sin_addr.s_addr;
        int ret;
 
-       dev = ip_dev_find(dst_ip);
+       dev = ip_dev_find(&init_net, dst_ip);
        if (!dev)
                return -EADDRNOTAVAIL;
 
-       if (ZERONET(src_ip)) {
+       if (ipv4_is_zeronet(src_ip)) {
                src_in->sin_family = dst_in->sin_family;
                src_in->sin_addr.s_addr = dst_ip;
                ret = rdma_copy_addr(addr, dev, dev->dev_addr);
-       } else if (LOOPBACK(src_ip)) {
+       } else if (ipv4_is_loopback(src_ip)) {
                ret = rdma_translate_ip((struct sockaddr *)dst_in, addr);
                if (!ret)
                        memcpy(addr->dst_dev_addr, dev->dev_addr, MAX_ADDR_LEN);