diff options
Diffstat (limited to 'drivers/net/vrf.c')
-rw-r--r-- | drivers/net/vrf.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index b82e3527924e..b4d746943bc5 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c | |||
@@ -407,6 +407,10 @@ static int vrf_rt6_create(struct net_device *dev) | |||
407 | struct rt6_info *rt6, *rt6_local; | 407 | struct rt6_info *rt6, *rt6_local; |
408 | int rc = -ENOMEM; | 408 | int rc = -ENOMEM; |
409 | 409 | ||
410 | /* IPv6 can be CONFIG enabled and then disabled runtime */ | ||
411 | if (!ipv6_mod_enabled()) | ||
412 | return 0; | ||
413 | |||
410 | rt6i_table = fib6_new_table(net, vrf->tb_id); | 414 | rt6i_table = fib6_new_table(net, vrf->tb_id); |
411 | if (!rt6i_table) | 415 | if (!rt6i_table) |
412 | goto out; | 416 | goto out; |
@@ -919,6 +923,9 @@ static int vrf_fib_rule(const struct net_device *dev, __u8 family, bool add_it) | |||
919 | struct sk_buff *skb; | 923 | struct sk_buff *skb; |
920 | int err; | 924 | int err; |
921 | 925 | ||
926 | if (family == AF_INET6 && !ipv6_mod_enabled()) | ||
927 | return 0; | ||
928 | |||
922 | skb = nlmsg_new(vrf_fib_rule_nl_size(), GFP_KERNEL); | 929 | skb = nlmsg_new(vrf_fib_rule_nl_size(), GFP_KERNEL); |
923 | if (!skb) | 930 | if (!skb) |
924 | return -ENOMEM; | 931 | return -ENOMEM; |