diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2016-04-05 16:58:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-04-05 19:34:44 -0400 |
commit | 727ceaa49bb86518470c19640ed7f067c5aa9485 (patch) | |
tree | 4ec8ebb890e54e50e6a4f4057622d6957048d0b4 | |
parent | aa4f069e167b8302b0ccf920bca389a1fbe2bc4a (diff) |
Revert "netpoll: Fix extra refcount release in netpoll_cleanup()"
This reverts commit 543e3a8da5a4c453e992d5351ef405d5e32f27d7.
Direct callers of __netpoll_setup() depend on it to set np->dev,
so we can't simply move that assignment up to netpoll_stup().
Reported-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/core/netpoll.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index a57bd17805b4..94acfc89ad97 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -603,6 +603,7 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev) | |||
603 | const struct net_device_ops *ops; | 603 | const struct net_device_ops *ops; |
604 | int err; | 604 | int err; |
605 | 605 | ||
606 | np->dev = ndev; | ||
606 | strlcpy(np->dev_name, ndev->name, IFNAMSIZ); | 607 | strlcpy(np->dev_name, ndev->name, IFNAMSIZ); |
607 | INIT_WORK(&np->cleanup_work, netpoll_async_cleanup); | 608 | INIT_WORK(&np->cleanup_work, netpoll_async_cleanup); |
608 | 609 | ||
@@ -669,7 +670,6 @@ int netpoll_setup(struct netpoll *np) | |||
669 | goto unlock; | 670 | goto unlock; |
670 | } | 671 | } |
671 | dev_hold(ndev); | 672 | dev_hold(ndev); |
672 | np->dev = ndev; | ||
673 | 673 | ||
674 | if (netdev_master_upper_dev_get(ndev)) { | 674 | if (netdev_master_upper_dev_get(ndev)) { |
675 | np_err(np, "%s is a slave device, aborting\n", np->dev_name); | 675 | np_err(np, "%s is a slave device, aborting\n", np->dev_name); |
@@ -770,7 +770,6 @@ int netpoll_setup(struct netpoll *np) | |||
770 | return 0; | 770 | return 0; |
771 | 771 | ||
772 | put: | 772 | put: |
773 | np->dev = NULL; | ||
774 | dev_put(ndev); | 773 | dev_put(ndev); |
775 | unlock: | 774 | unlock: |
776 | rtnl_unlock(); | 775 | rtnl_unlock(); |