Browse Source

drivers: net: cpsw: check return code from pm runtime calls

Add missed check of return code from PM runtime get() calls.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Grygorii Strashko 9 years ago
parent
commit
108a653730
1 changed files with 10 additions and 2 deletions
  1. 10 2
      drivers/net/ethernet/ti/cpsw.c

+ 10 - 2
drivers/net/ethernet/ti/cpsw.c

@@ -1252,7 +1252,11 @@ static int cpsw_ndo_open(struct net_device *ndev)
 	int i, ret;
 	int i, ret;
 	u32 reg;
 	u32 reg;
 
 
-	pm_runtime_get_sync(&priv->pdev->dev);
+	ret = pm_runtime_get_sync(&priv->pdev->dev);
+	if (ret < 0) {
+		pm_runtime_put_noidle(&priv->pdev->dev);
+		return ret;
+	}
 
 
 	if (!cpsw_common_res_usage_state(priv))
 	if (!cpsw_common_res_usage_state(priv))
 		cpsw_intr_disable(priv);
 		cpsw_intr_disable(priv);
@@ -2312,7 +2316,11 @@ static int cpsw_probe(struct platform_device *pdev)
 	/* Need to enable clocks with runtime PM api to access module
 	/* Need to enable clocks with runtime PM api to access module
 	 * registers
 	 * registers
 	 */
 	 */
-	pm_runtime_get_sync(&pdev->dev);
+	ret = pm_runtime_get_sync(&pdev->dev);
+	if (ret < 0) {
+		pm_runtime_put_noidle(&pdev->dev);
+		goto clean_runtime_disable_ret;
+	}
 	priv->version = readl(&priv->regs->id_ver);
 	priv->version = readl(&priv->regs->id_ver);
 	pm_runtime_put_sync(&pdev->dev);
 	pm_runtime_put_sync(&pdev->dev);