From: David Ahern <dsah...@gmail.com>

Update ipv4_confirm_neigh to handle an ipv6 gateway.

Signed-off-by: David Ahern <dsah...@gmail.com>
---
 net/ipv4/route.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 32ecb4c1c7e3..efa6a36cbfff 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -465,13 +465,15 @@ static void ipv4_confirm_neigh(const struct dst_entry 
*dst, const void *daddr)
        struct net_device *dev = dst->dev;
        const __be32 *pkey = daddr;
 
-       if (rt->rt_gw_family == AF_INET)
+       if (rt->rt_gw_family == AF_INET) {
                pkey = (const __be32 *)&rt->rt_gw4;
-       else if (!daddr ||
+       } else if (rt->rt_gw_family == AF_INET6) {
+               return __ipv6_confirm_neigh_stub(dev, &rt->rt_gw6);
+       } else if (!daddr ||
                 (rt->rt_flags &
-                 (RTCF_MULTICAST | RTCF_BROADCAST | RTCF_LOCAL)))
+                 (RTCF_MULTICAST | RTCF_BROADCAST | RTCF_LOCAL))) {
                return;
-
+       }
        __ipv4_confirm_neigh(dev, *(__force u32 *)pkey);
 }
 
-- 
2.11.0

Reply via email to