Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9808f032 authored by Paul Cercueil's avatar Paul Cercueil Committed by Greg Kroah-Hartman
Browse files

net: davicom: Fix regulator not turned off on driver removal



commit cf9e60aa69ae6c40d3e3e4c94dd6c8de31674e9b upstream.

We must disable the regulator that was enabled in the probe function.

Fixes: 7994fe55 ("dm9000: Add regulator and reset support to dm9000")
Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6b8089f0
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -143,6 +143,8 @@ struct board_info {
	u32		wake_state;

	int		ip_summed;

	struct regulator *power_supply;
};

/* debug code */
@@ -1492,6 +1494,8 @@ dm9000_probe(struct platform_device *pdev)

	db->dev = &pdev->dev;
	db->ndev = ndev;
	if (!IS_ERR(power))
		db->power_supply = power;

	spin_lock_init(&db->lock);
	mutex_init(&db->addr_lock);
@@ -1781,10 +1785,13 @@ static int
dm9000_drv_remove(struct platform_device *pdev)
{
	struct net_device *ndev = platform_get_drvdata(pdev);
	struct board_info *dm = to_dm9000_board(ndev);

	unregister_netdev(ndev);
	dm9000_release_board(pdev, netdev_priv(ndev));
	dm9000_release_board(pdev, dm);
	free_netdev(ndev);		/* free device structure */
	if (dm->power_supply)
		regulator_disable(dm->power_supply);

	dev_dbg(&pdev->dev, "released and freed device\n");
	return 0;