diff options
Diffstat (limited to 'net/ipv4/ipmr.c')
-rw-r--r-- | net/ipv4/ipmr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 5716c6b808d6..8eec8f4a0536 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c | |||
@@ -1795,9 +1795,12 @@ static struct mr_table *ipmr_rt_fib_lookup(struct net *net, struct sk_buff *skb) | |||
1795 | .daddr = iph->daddr, | 1795 | .daddr = iph->daddr, |
1796 | .saddr = iph->saddr, | 1796 | .saddr = iph->saddr, |
1797 | .flowi4_tos = RT_TOS(iph->tos), | 1797 | .flowi4_tos = RT_TOS(iph->tos), |
1798 | .flowi4_oif = rt->rt_oif, | 1798 | .flowi4_oif = (rt_is_output_route(rt) ? |
1799 | .flowi4_iif = rt->rt_iif, | 1799 | skb->dev->ifindex : 0), |
1800 | .flowi4_mark = rt->rt_mark, | 1800 | .flowi4_iif = (rt_is_output_route(rt) ? |
1801 | net->loopback_dev->ifindex : | ||
1802 | skb->dev->ifindex), | ||
1803 | .flowi4_mark = skb->mark, | ||
1801 | }; | 1804 | }; |
1802 | struct mr_table *mrt; | 1805 | struct mr_table *mrt; |
1803 | int err; | 1806 | int err; |