diff --git a/net/ipv6/route.c b/net/ipv6/route.c index d442b7365bcd50167d34b2056c072546dc548732..b17d167d847c68599fe1e4a1b9bd745fe4834d7f 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -3541,11 +3541,7 @@ static int ip6_route_dev_notify(struct notifier_block *this, net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); #endif - } else if (event == NETDEV_UNREGISTER && - dev->reg_state != NETREG_UNREGISTERED) { - /* NETDEV_UNREGISTER could be fired for multiple times by - * netdev_wait_allrefs(). Make sure we only call this once. - */ + } else if (event == NETDEV_UNREGISTER) { in6_dev_put(net->ipv6.ip6_null_entry->rt6i_idev); #ifdef CONFIG_IPV6_MULTIPLE_TABLES in6_dev_put(net->ipv6.ip6_prohibit_entry->rt6i_idev);