Lines Matching refs:idev
194 static int devinet_sysctl_register(struct in_device *idev);
195 static void devinet_sysctl_unregister(struct in_device *idev);
197 static int devinet_sysctl_register(struct in_device *idev) in devinet_sysctl_register() argument
201 static void devinet_sysctl_unregister(struct in_device *idev) in devinet_sysctl_unregister() argument
243 struct in_device *idev = container_of(head, struct in_device, rcu_head); in in_dev_free_rcu() local
245 kfree(rcu_dereference_protected(idev->mc_hash, 1)); in in_dev_free_rcu()
246 kfree(idev); in in_dev_free_rcu()
249 void in_dev_finish_destroy(struct in_device *idev) in in_dev_finish_destroy() argument
251 struct net_device *dev = idev->dev; in in_dev_finish_destroy()
253 WARN_ON(idev->ifa_list); in in_dev_finish_destroy()
254 WARN_ON(idev->mc_list); in in_dev_finish_destroy()
256 pr_debug("%s: %p=%s\n", __func__, idev, dev ? dev->name : "NIL"); in in_dev_finish_destroy()
258 netdev_put(dev, &idev->dev_tracker); in in_dev_finish_destroy()
259 if (!idev->dead) in in_dev_finish_destroy()
260 pr_err("Freeing alive in_device %p\n", idev); in in_dev_finish_destroy()
262 call_rcu(&idev->rcu_head, in_dev_free_rcu); in in_dev_finish_destroy()
2463 struct in_device *idev in devinet_conf_ifindex() local
2465 return idev->dev->ifindex; in devinet_conf_ifindex()
2547 struct in_device *idev = in devinet_sysctl_forward() local
2550 dev_disable_lro(idev->dev); in devinet_sysctl_forward()
2553 idev->dev->ifindex, in devinet_sysctl_forward()
2708 static int devinet_sysctl_register(struct in_device *idev) in devinet_sysctl_register() argument
2712 if (!sysctl_dev_name_is_allowed(idev->dev->name)) in devinet_sysctl_register()
2715 err = neigh_sysctl_register(idev->dev, idev->arp_parms, NULL); in devinet_sysctl_register()
2718 err = __devinet_sysctl_register(dev_net(idev->dev), idev->dev->name, in devinet_sysctl_register()
2719 idev->dev->ifindex, &idev->cnf); in devinet_sysctl_register()
2721 neigh_sysctl_unregister(idev->arp_parms); in devinet_sysctl_register()
2725 static void devinet_sysctl_unregister(struct in_device *idev) in devinet_sysctl_unregister() argument
2727 struct net *net = dev_net(idev->dev); in devinet_sysctl_unregister()
2729 __devinet_sysctl_unregister(net, &idev->cnf, idev->dev->ifindex); in devinet_sysctl_unregister()
2730 neigh_sysctl_unregister(idev->arp_parms); in devinet_sysctl_unregister()