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

Commit 3fc8e9a7 authored by Dinghao Liu's avatar Dinghao Liu Committed by Greg Kroah-Hartman
Browse files

net: smsc911x: Fix runtime PM imbalance on error



[ Upstream commit 539d39ad0c61b35f69565a037d7586deaf6d6166 ]

Remove runtime PM usage counter decrement when the
increment function has not been called to keep the
counter balanced.

Signed-off-by: default avatarDinghao Liu <dinghao.liu@zju.edu.cn>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 4ed49848
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -2515,20 +2515,20 @@ static int smsc911x_drv_probe(struct platform_device *pdev)

	retval = smsc911x_init(dev);
	if (retval < 0)
		goto out_disable_resources;
		goto out_init_fail;

	netif_carrier_off(dev);

	retval = smsc911x_mii_init(pdev, dev);
	if (retval) {
		SMSC_WARN(pdata, probe, "Error %i initialising mii", retval);
		goto out_disable_resources;
		goto out_init_fail;
	}

	retval = register_netdev(dev);
	if (retval) {
		SMSC_WARN(pdata, probe, "Error %i registering device", retval);
		goto out_disable_resources;
		goto out_init_fail;
	} else {
		SMSC_TRACE(pdata, probe,
			   "Network interface: \"%s\"", dev->name);
@@ -2569,9 +2569,10 @@ static int smsc911x_drv_probe(struct platform_device *pdev)

	return 0;

out_disable_resources:
out_init_fail:
	pm_runtime_put(&pdev->dev);
	pm_runtime_disable(&pdev->dev);
out_disable_resources:
	(void)smsc911x_disable_resources(pdev);
out_enable_resources_fail:
	smsc911x_free_resources(pdev);