net: vrf: determine the dst using the original ifindex for multicast
[platform/kernel/linux-rpi.git] / drivers / net / vrf.c
index 6b5a4d0..bdb3a76 100644 (file)
@@ -1385,8 +1385,8 @@ static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev,
 
        /* loopback, multicast & non-ND link-local traffic; do not push through
         * packet taps again. Reset pkt_type for upper layers to process skb.
-        * For strict packets with a source LLA, determine the dst using the
-        * original ifindex.
+        * For non-loopback strict packets, determine the dst using the original
+        * ifindex.
         */
        if (skb->pkt_type == PACKET_LOOPBACK || (need_strict && !is_ndisc)) {
                skb->dev = vrf_dev;
@@ -1395,7 +1395,7 @@ static struct sk_buff *vrf_ip6_rcv(struct net_device *vrf_dev,
 
                if (skb->pkt_type == PACKET_LOOPBACK)
                        skb->pkt_type = PACKET_HOST;
-               else if (ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)
+               else
                        vrf_ip6_input_dst(skb, vrf_dev, orig_iif);
 
                goto out;