diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index 9077060f9368..d45f2fcf2f90 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2231,8 +2231,13 @@ u32 addrconf_rt_table(const struct net_device *dev, u32 default_table) { * - If < 0, put routes into table dev->ifindex + (-rt_table). */ struct inet6_dev *idev = in6_dev_get(dev); + int sysctl; u32 table; - int sysctl = idev->cnf.accept_ra_rt_table; + + if (!idev) + return default_table; + + sysctl = idev->cnf.accept_ra_rt_table; if (sysctl == 0) { table = default_table; } else if (sysctl > 0) {