net: Replace calls to vrf_dev_get_rth
authorDavid Ahern <dsa@cumulusnetworks.com>
Wed, 30 Sep 2015 03:07:15 +0000 (20:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Sep 2015 03:40:33 +0000 (20:40 -0700)
Replace calls to vrf_dev_get_rth with l3mdev_get_rtable.
The check on the flow flags is handled in the l3mdev operation.

Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/vrf.h
net/ipv4/route.c

index b05b966..5bba153 100644 (file)
@@ -32,26 +32,4 @@ struct net_vrf {
        u32                     tb_id;
 };
 
-
-#if IS_ENABLED(CONFIG_NET_VRF)
-/* caller has already checked netif_is_l3_master(dev) */
-static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
-{
-       struct rtable *rth = ERR_PTR(-ENETUNREACH);
-       struct net_vrf *vrf = netdev_priv(dev);
-
-       if (vrf) {
-               rth = vrf->rth;
-               atomic_inc(&rth->dst.__refcnt);
-       }
-       return rth;
-}
-
-#else
-static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
-{
-       return ERR_PTR(-ENETUNREACH);
-}
-#endif
-
 #endif /* __LINUX_NET_VRF_H */
index ba46666..1441de1 100644 (file)
 #endif
 #include <net/secure_seq.h>
 #include <net/ip_tunnels.h>
-#include <net/vrf.h>
 #include <net/l3mdev.h>
 
 #define RT_FL_TOS(oldflp4) \
@@ -2125,11 +2124,10 @@ struct rtable *__ip_route_output_key(struct net *net, struct flowi4 *fl4)
                                fl4->saddr = inet_select_addr(dev_out, 0,
                                                              RT_SCOPE_HOST);
                }
-               if (netif_is_l3_master(dev_out) &&
-                   !(fl4->flowi4_flags & FLOWI_FLAG_VRFSRC)) {
-                       rth = vrf_dev_get_rth(dev_out);
+
+               rth = l3mdev_get_rtable(dev_out, fl4);
+               if (rth)
                        goto out;
-               }
        }
 
        if (!fl4->daddr) {