vrf: Do not attempt to create IPv6 mcast rule if IPv6 is disabled
authorDavid Ahern <dsahern@gmail.com>
Wed, 25 Sep 2019 14:53:19 +0000 (07:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Sep 2019 18:07:05 +0000 (20:07 +0200)
A user reported that vrf create fails when IPv6 is disabled at boot using
'ipv6.disable=1':
   https://bugzilla.kernel.org/show_bug.cgi?id=204903

The failure is adding fib rules at create time. Add RTNL_FAMILY_IP6MR to
the check in vrf_fib_rule if ipv6_mod_enabled is disabled.

Fixes: e4a38c0c4b27 ("ipv6: add vrf table handling code for ipv6 mcast")
Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Patrick Ruddy <pruddy@vyatta.att-mail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c

index 6e84328bdd402f0b66b71a92e7f894765e20dc1b..a4b38a980c3cbd0ecdc148fd2922b9bda33e6478 100644 (file)
@@ -1154,7 +1154,8 @@ static int vrf_fib_rule(const struct net_device *dev, __u8 family, bool add_it)
        struct sk_buff *skb;
        int err;
 
-       if (family == AF_INET6 && !ipv6_mod_enabled())
+       if ((family == AF_INET6 || family == RTNL_FAMILY_IP6MR) &&
+           !ipv6_mod_enabled())
                return 0;
 
        skb = nlmsg_new(vrf_fib_rule_nl_size(), GFP_KERNEL);