Lines Matching refs:idev
245 static void snmp6_free_dev(struct inet6_dev *idev) in snmp6_free_dev() argument
247 kfree(idev->stats.icmpv6msgdev); in snmp6_free_dev()
248 kfree(idev->stats.icmpv6dev); in snmp6_free_dev()
249 free_percpu(idev->stats.ipv6); in snmp6_free_dev()
254 struct inet6_dev *idev = container_of(head, struct inet6_dev, rcu); in in6_dev_finish_destroy_rcu() local
256 snmp6_free_dev(idev); in in6_dev_finish_destroy_rcu()
257 kfree(idev); in in6_dev_finish_destroy_rcu()
262 void in6_dev_finish_destroy(struct inet6_dev *idev) in in6_dev_finish_destroy() argument
264 struct net_device *dev = idev->dev; in in6_dev_finish_destroy()
266 WARN_ON(!list_empty(&idev->addr_list)); in in6_dev_finish_destroy()
267 WARN_ON(rcu_access_pointer(idev->mc_list)); in in6_dev_finish_destroy()
268 WARN_ON(timer_pending(&idev->rs_timer)); in in6_dev_finish_destroy()
273 netdev_put(dev, &idev->dev_tracker); in in6_dev_finish_destroy()
274 if (!idev->dead) { in in6_dev_finish_destroy()
275 pr_warn("Freeing alive inet6 device %p\n", idev); in in6_dev_finish_destroy()
278 call_rcu(&idev->rcu, in6_dev_finish_destroy_rcu); in in6_dev_finish_destroy()