From: Eric Dumazet Date: Sun, 5 Dec 2021 04:22:01 +0000 (-0800) Subject: net: add net device refcount tracker to dev_ifsioc() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=14ed029b5eb5146794a46d89e114715c9d380ca1;p=linux.git net: add net device refcount tracker to dev_ifsioc() Signed-off-by: Eric Dumazet Signed-off-by: Jakub Kicinski --- diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c index cbab5fec64b12..1d309a6669325 100644 --- a/net/core/dev_ioctl.c +++ b/net/core/dev_ioctl.c @@ -313,6 +313,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, void __user *data, int err; struct net_device *dev = __dev_get_by_name(net, ifr->ifr_name); const struct net_device_ops *ops; + netdevice_tracker dev_tracker; if (!dev) return -ENODEV; @@ -381,10 +382,10 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, void __user *data, return -ENODEV; if (!netif_is_bridge_master(dev)) return -EOPNOTSUPP; - dev_hold(dev); + dev_hold_track(dev, &dev_tracker, GFP_KERNEL); rtnl_unlock(); err = br_ioctl_call(net, netdev_priv(dev), cmd, ifr, NULL); - dev_put(dev); + dev_put_track(dev, &dev_tracker); rtnl_lock(); return err;