net: ipv4: Do not drop to make_route if oif is l3mdev
[linux-2.6-block.git] / net / ipv4 / route.c
index f2be689a6c85b6fd7619d3449db69756aa2e9aba..62d4d90c1389c4ea7da37c81779b2f55207d2a92 100644 (file)
@@ -2265,7 +2265,8 @@ struct rtable *__ip_route_output_key_hash(struct net *net, struct flowi4 *fl4,
        if (err) {
                res.fi = NULL;
                res.table = NULL;
-               if (fl4->flowi4_oif) {
+               if (fl4->flowi4_oif &&
+                   !netif_index_is_l3_master(net, fl4->flowi4_oif)) {
                        /* Apparently, routing tables are wrong. Assume,
                           that the destination is on link.