mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 23:05:25 -04:00
net: stmmac: add __stmmac_release() to complement __stmmac_open()
Rename stmmac_release() to __stmmac_release(), providing a new stmmac_release() method. Update stmmac_change_mtu() to use __stmmac_release(). Move the runtime PM handling into stmmac_open() and stmmac_release(). This avoids stmmac_change_mtu() needlessly fiddling with the runtime PM state, and will allow future changes to remove code from __stmmac_open() and __stmmac_release() that should only happen when the net device is administratively brought up or down. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
ff2e19d569
commit
67ec43792b
@@ -3965,10 +3965,6 @@ static int __stmmac_open(struct net_device *dev,
|
||||
if (!priv->tx_lpi_timer)
|
||||
priv->tx_lpi_timer = eee_timer * 1000;
|
||||
|
||||
ret = pm_runtime_resume_and_get(priv->device);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if ((!priv->hw->xpcs ||
|
||||
xpcs_get_an_mode(priv->hw->xpcs, mode) != DW_AN_C73)) {
|
||||
ret = stmmac_init_phy(dev);
|
||||
@@ -3976,7 +3972,7 @@ static int __stmmac_open(struct net_device *dev,
|
||||
netdev_err(priv->dev,
|
||||
"%s: Cannot attach to PHY (error: %d)\n",
|
||||
__func__, ret);
|
||||
goto init_phy_error;
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4028,8 +4024,6 @@ irq_error:
|
||||
stmmac_release_ptp(priv);
|
||||
init_error:
|
||||
phylink_disconnect_phy(priv->phylink);
|
||||
init_phy_error:
|
||||
pm_runtime_put(priv->device);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -4043,21 +4037,23 @@ static int stmmac_open(struct net_device *dev)
|
||||
if (IS_ERR(dma_conf))
|
||||
return PTR_ERR(dma_conf);
|
||||
|
||||
ret = pm_runtime_resume_and_get(priv->device);
|
||||
if (ret < 0)
|
||||
goto err;
|
||||
|
||||
ret = __stmmac_open(dev, dma_conf);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
pm_runtime_put(priv->device);
|
||||
err:
|
||||
free_dma_desc_resources(priv, dma_conf);
|
||||
}
|
||||
|
||||
kfree(dma_conf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* stmmac_release - close entry point of the driver
|
||||
* @dev : device pointer.
|
||||
* Description:
|
||||
* This is the stop entry point of the driver.
|
||||
*/
|
||||
static int stmmac_release(struct net_device *dev)
|
||||
static void __stmmac_release(struct net_device *dev)
|
||||
{
|
||||
struct stmmac_priv *priv = netdev_priv(dev);
|
||||
u32 chan;
|
||||
@@ -4097,6 +4093,19 @@ static int stmmac_release(struct net_device *dev)
|
||||
|
||||
if (stmmac_fpe_supported(priv))
|
||||
ethtool_mmsv_stop(&priv->fpe_cfg.mmsv);
|
||||
}
|
||||
|
||||
/**
|
||||
* stmmac_release - close entry point of the driver
|
||||
* @dev : device pointer.
|
||||
* Description:
|
||||
* This is the stop entry point of the driver.
|
||||
*/
|
||||
static int stmmac_release(struct net_device *dev)
|
||||
{
|
||||
struct stmmac_priv *priv = netdev_priv(dev);
|
||||
|
||||
__stmmac_release(dev);
|
||||
|
||||
pm_runtime_put(priv->device);
|
||||
|
||||
@@ -5895,7 +5904,7 @@ static int stmmac_change_mtu(struct net_device *dev, int new_mtu)
|
||||
return PTR_ERR(dma_conf);
|
||||
}
|
||||
|
||||
stmmac_release(dev);
|
||||
__stmmac_release(dev);
|
||||
|
||||
ret = __stmmac_open(dev, dma_conf);
|
||||
if (ret) {
|
||||
|
||||
Reference in New Issue
Block a user