Message ID | 54D08871.6030304@users.sourceforge.net |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
On Tue, Feb 03, 2015 at 09:36:01AM +0100, SF Markus Elfring wrote: ... > @@ -4215,7 +4215,9 @@ static int mv_platform_remove(struct platform_device *pdev) > clk_disable_unprepare(hpriv->port_clks[port]); > clk_put(hpriv->port_clks[port]); > } > - phy_power_off(hpriv->port_phys[port]); > + rc = phy_power_off(hpriv->port_phys[port]); > + if (rc) > + return rc; So, this is a removal function which is ignoring failure from turning off phy, which seems like the right thing to do. The same thing with suspend routines. If something auxliary which isn't strictly necessary in reaching suspend state fails, the failure should be ignored. Running static code analysis to locate trivial irregularities and performing identity transformations is fine, even great, but you're changing the behavior here without actually understanding what's going on. Please don't do these things automatically. Thanks.
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index f8c33e3..4f9bc33 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c @@ -4203,7 +4203,7 @@ static int mv_platform_remove(struct platform_device *pdev) { struct ata_host *host = platform_get_drvdata(pdev); struct mv_host_priv *hpriv = host->private_data; - int port; + int port, rc; ata_host_detach(host); if (!IS_ERR(hpriv->clk)) { @@ -4215,7 +4215,9 @@ static int mv_platform_remove(struct platform_device *pdev) clk_disable_unprepare(hpriv->port_clks[port]); clk_put(hpriv->port_clks[port]); } - phy_power_off(hpriv->port_phys[port]); + rc = phy_power_off(hpriv->port_phys[port]); + if (rc) + return rc; } return 0; }