Message ID | 20250519123347.2242-1-vulab@iscas.ac.cn |
---|---|
State | New |
Headers | show |
Series | mmc: sdhci-sprd: Add error handling for sdhci_runtime_suspend_host() | expand |
On 19/05/2025 15:33, Wentao Liang wrote: > The dhci_sprd_runtime_suspend() calls sdhci_runtime_suspend_host() but > does not handle the return value. A proper implementation can be found > in sdhci_am654_runtime_suspend(). > > Add error handling for sdhci_runtime_suspend_host(). Return the error > code if the suspend fails. I think it's better to remove the return value instead: https://lore.kernel.org/linux-mmc/20250530122018.37250-1-adrian.hunter@intel.com/T/#u > > Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller") > Cc: stable@vger.kernel.org # v4.20 > Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> > --- > drivers/mmc/host/sdhci-sprd.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c > index db5e253b0f79..dd41427e973a 100644 > --- a/drivers/mmc/host/sdhci-sprd.c > +++ b/drivers/mmc/host/sdhci-sprd.c > @@ -922,9 +922,12 @@ static int sdhci_sprd_runtime_suspend(struct device *dev) > { > struct sdhci_host *host = dev_get_drvdata(dev); > struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); > + int ret; > > mmc_hsq_suspend(host->mmc); > - sdhci_runtime_suspend_host(host); > + ret = sdhci_runtime_suspend_host(host); > + if (ret) > + return ret; > > clk_disable_unprepare(sprd_host->clk_sdio); > clk_disable_unprepare(sprd_host->clk_enable);
diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c index db5e253b0f79..dd41427e973a 100644 --- a/drivers/mmc/host/sdhci-sprd.c +++ b/drivers/mmc/host/sdhci-sprd.c @@ -922,9 +922,12 @@ static int sdhci_sprd_runtime_suspend(struct device *dev) { struct sdhci_host *host = dev_get_drvdata(dev); struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); + int ret; mmc_hsq_suspend(host->mmc); - sdhci_runtime_suspend_host(host); + ret = sdhci_runtime_suspend_host(host); + if (ret) + return ret; clk_disable_unprepare(sprd_host->clk_sdio); clk_disable_unprepare(sprd_host->clk_enable);
The dhci_sprd_runtime_suspend() calls sdhci_runtime_suspend_host() but does not handle the return value. A proper implementation can be found in sdhci_am654_runtime_suspend(). Add error handling for sdhci_runtime_suspend_host(). Return the error code if the suspend fails. Fixes: fb8bd90f83c4 ("mmc: sdhci-sprd: Add Spreadtrum's initial host controller") Cc: stable@vger.kernel.org # v4.20 Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> --- drivers/mmc/host/sdhci-sprd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)