The sdhci_omap_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: f433e8aac6b9 ("mmc: sdhci-omap: Implement PM runtime functions") Cc: stable@vger.kernel.org # v5.16 Signed-off-by: Wentao Liang vulab@iscas.ac.cn --- drivers/mmc/host/sdhci-omap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c index 54d795205fb4..69b2e4e5cb20 100644 --- a/drivers/mmc/host/sdhci-omap.c +++ b/drivers/mmc/host/sdhci-omap.c @@ -1438,6 +1438,7 @@ static int __maybe_unused sdhci_omap_runtime_suspend(struct device *dev) struct sdhci_host *host = dev_get_drvdata(dev); struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_omap_host *omap_host = sdhci_pltfm_priv(pltfm_host); + int ret;
if (host->tuning_mode != SDHCI_TUNING_MODE_3) mmc_retune_needed(host->mmc); @@ -1445,7 +1446,9 @@ static int __maybe_unused sdhci_omap_runtime_suspend(struct device *dev) if (omap_host->con != -EINVAL) sdhci_runtime_suspend_host(host);
- sdhci_omap_context_save(omap_host); + ret = sdhci_omap_context_save(omap_host); + if (ret) + return ret;
pinctrl_pm_select_idle_state(dev);
Hi Wentao,
kernel test robot noticed the following build errors:
[auto build test ERROR on linus/master] [also build test ERROR on v6.15-rc7 next-20250516] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Wentao-Liang/mmc-sdhci-omap-A... base: linus/master patch link: https://lore.kernel.org/r/20250519125143.2331-1-vulab%40iscas.ac.cn patch subject: [PATCH] mmc: sdhci-omap: Add error handling for sdhci_runtime_suspend_host() config: sparc-randconfig-001-20250520 (https://download.01.org/0day-ci/archive/20250520/202505200727.1k4LfYCQ-lkp@i...) compiler: sparc-linux-gcc (GCC) 8.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250520/202505200727.1k4LfYCQ-lkp@i...)
If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot lkp@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202505200727.1k4LfYCQ-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/mmc/host/sdhci-omap.c: In function 'sdhci_omap_runtime_suspend':
drivers/mmc/host/sdhci-omap.c:1449:6: error: void value not ignored as it ought to be
ret = sdhci_omap_context_save(omap_host); ^
vim +1449 drivers/mmc/host/sdhci-omap.c
1435 1436 static int __maybe_unused sdhci_omap_runtime_suspend(struct device *dev) 1437 { 1438 struct sdhci_host *host = dev_get_drvdata(dev); 1439 struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); 1440 struct sdhci_omap_host *omap_host = sdhci_pltfm_priv(pltfm_host); 1441 int ret; 1442 1443 if (host->tuning_mode != SDHCI_TUNING_MODE_3) 1444 mmc_retune_needed(host->mmc); 1445 1446 if (omap_host->con != -EINVAL) 1447 sdhci_runtime_suspend_host(host); 1448
1449 ret = sdhci_omap_context_save(omap_host);
1450 if (ret) 1451 return ret; 1452 1453 pinctrl_pm_select_idle_state(dev); 1454 1455 return 0; 1456 } 1457
linux-stable-mirror@lists.linaro.org