diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index a16cf1ec5e5ebe9fc100cb027c740c9387184472..4062b88bfc1b6fa7c598a2c5f66796cfac46c3f5 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -507,6 +507,7 @@ struct pneigh_entry * pneigh_lookup(struct neigh_table *tbl,
 	if (tbl->pconstructor && tbl->pconstructor(n)) {
 		if (dev)
 			dev_put(dev);
+		release_net(net);
 		kfree(n);
 		n = NULL;
 		goto out;