ipv4: Create and use route lookup helpers.
[linux-3.10.git] / net / ipv4 / arp.c
index fa9988d..090d273 100644 (file)
@@ -433,14 +433,12 @@ static int arp_ignore(struct in_device *in_dev, __be32 sip, __be32 tip)
 
 static int arp_filter(__be32 sip, __be32 tip, struct net_device *dev)
 {
-       struct flowi fl = { .fl4_dst = sip,
-                           .fl4_src = tip };
        struct rtable *rt;
        int flag = 0;
        /*unsigned long now; */
        struct net *net = dev_net(dev);
 
-       rt = ip_route_output_key(net, &fl);
+       rt = ip_route_output(net, sip, tip, 0, 0);
        if (IS_ERR(rt))
                return 1;
        if (rt->dst.dev != dev) {
@@ -1062,9 +1060,7 @@ static int arp_req_set(struct net *net, struct arpreq *r,
        if (r->arp_flags & ATF_PERM)
                r->arp_flags |= ATF_COM;
        if (dev == NULL) {
-               struct flowi fl = { .fl4_dst = ip,
-                                   .fl4_tos = RTO_ONLINK };
-               struct rtable *rt = ip_route_output_key(net, &fl);
+               struct rtable *rt = ip_route_output(net, ip, 0, RTO_ONLINK, 0);
 
                if (IS_ERR(rt))
                        return PTR_ERR(rt);
@@ -1185,9 +1181,7 @@ static int arp_req_delete(struct net *net, struct arpreq *r,
 
        ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr;
        if (dev == NULL) {
-               struct flowi fl = { .fl4_dst = ip,
-                                   .fl4_tos = RTO_ONLINK };
-               struct rtable *rt = ip_route_output_key(net, &fl);
+               struct rtable *rt = ip_route_output(net, ip, 0, RTO_ONLINK, 0);
                if (IS_ERR(rt))
                        return PTR_ERR(rt);
                dev = rt->dst.dev;