aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/neighbour.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2021-12-04 20:22:07 -0800
committerJakub Kicinski <kuba@kernel.org>2021-12-06 16:05:11 -0800
commit85662c9f8cbd4c96088ff99f56bc3d1097d0ac07 (patch)
treec70f1beeddfc25e4f8302d8338c208336a01ab3e /net/core/neighbour.c
parentipv6: add net device refcount tracker to struct ip6_tnl (diff)
downloadlinux-dev-85662c9f8cbd4c96088ff99f56bc3d1097d0ac07.tar.xz
linux-dev-85662c9f8cbd4c96088ff99f56bc3d1097d0ac07.zip
net: add net device refcount tracker to struct neighbour
Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/neighbour.c')
-rw-r--r--net/core/neighbour.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 72ba027c34cf..fb340347e4d8 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -624,7 +624,7 @@ ___neigh_create(struct neigh_table *tbl, const void *pkey,
memcpy(n->primary_key, pkey, key_len);
n->dev = dev;
- dev_hold(dev);
+ dev_hold_track(dev, &n->dev_tracker, GFP_ATOMIC);
/* Protocol specific setup. */
if (tbl->constructor && (error = tbl->constructor(n)) < 0) {
@@ -880,7 +880,7 @@ void neigh_destroy(struct neighbour *neigh)
if (dev->netdev_ops->ndo_neigh_destroy)
dev->netdev_ops->ndo_neigh_destroy(dev, neigh);
- dev_put(dev);
+ dev_put_track(dev, &neigh->dev_tracker);
neigh_parms_put(neigh->parms);
neigh_dbg(2, "neigh %p is destroyed\n", neigh);