From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C6DDA3EB111 for ; Fri, 17 Jul 2026 10:10:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784283056; cv=none; b=FbnBAaaPRI/V/sonC4jXTOsQ62KF33aHntfGP6MdJZiXsvvhJjzXgsgl29TqSVVc0pRxSfX3B5xaP/1eAfTT5y07KEy2II524VsOi6EaLl9Qpr6aCudJhAwVgG0gtJEhfcwOk6hMrhN6hWKgXePcf6wqjkCK+godKCoOHz6WtEw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784283056; c=relaxed/simple; bh=ldQ/iUGMrGHxKXxkUXAQa6J8x3uVZmvW1Kddq04F3bY=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=VscKVuIJPmltslJ+vinRgk67SS8Tf8zCVV0EoavNAIGMUPmDiwpC7NxiC0BO7LN8uLkYUjvuD49GhV+uibertiCiNO8VlnTMFNA0mi2kWrMj089RcTs+4VmqSHh8hoxU/Au1FvPXMJJH5PNM+Ax4WA8CLz32C0xIo4RTVvau/Tc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bA0nuJKD; arc=none smtp.client-ip=209.85.160.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bA0nuJKD" Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-44856d185bcso3835628fac.3 for ; Fri, 17 Jul 2026 03:10:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784283053; x=1784887853; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=vijqM8KLfxoJ7zWFWIhaauEg3BKDHA3EobwX8Ha/oEk=; b=bA0nuJKDaZifJ6cWLZ6eBETdyJP/xZAssluBGKTUWCzTMpBkwAUJFXAN/Ih4ayBhTX OSP/gTNGnwvtyUPxwBPswZP3+v9lFNEQoOeGB9Cu670kJSknvHPm2sTmtWfcIBmlK2aZ 5IwhBxSaspoWJlZEXW4/TWlB1hTE1dJn/ZIcT9sdyVuL0UWh9k4A0aDnCSCYQEzfRIuS w6wVXbK2qxg8XlD90PVPiA1HU0I/PtXjhPfqeIe+MMI9IeK/xXBLZ6Dik9jReOVzRnAx 7GFAFw3WrRVsMmY8m8mPNPKLP2IbF+UuAbzcCEPh6znwrRXQhdJ/3h8i5DlxXk91mnq7 9F9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784283053; x=1784887853; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=vijqM8KLfxoJ7zWFWIhaauEg3BKDHA3EobwX8Ha/oEk=; b=Nqg/gdbVJYbt65Ja7YuVG/Yhfc3yVTwruaDT40GV2UmMjURTbNZT3SxO2JnVfiiGoo j9rXcIC0kYX2dU24WoPC0FajiCbN2yUPF86DMCLKeTH588nyWNmhouYX0VPiB7dMXey3 2+Jxd+Q4V6y0SYoDKsgZgxAogU/xswClK2Gnd1ga2WoAjnZwhSwgOwqUE1ZGJwibrsZf CYT3XCJW6sK9nFDdnGIkjd8L5P462L46AS1Sy6q41XVOGc/CrwjBMg9p7oAtha2qpHZt c/NNmFCUXptVbkOOkll1ZdInAQiM3R2h3kt/EW/RkQ4WQBl3p/JK90wCnldP/1CXfrdE 6Ejw== X-Forwarded-Encrypted: i=1; AHgh+RpjYZjUQGujfpkON74JX7B9lweU0fYHI+qaDWQ5Ew2xZUBY2HLsrTltSO8Lm39p3GG0ixGzujLZB784v9w=@vger.kernel.org X-Gm-Message-State: AOJu0Yxji4UIvWpCsuQzZaifQWCspbvU11des0m45mlKSqckba0ZDBFa TwuBcnB4ejD/lRqZsEsCZEpsKaSjj21Uci8Z25yLocMjJSCxtV8TUxY0 X-Gm-Gg: AfdE7ckE8H7jehZPgXJT51qJBxNQYz/GVgeVK3ii1ZiF337L0kcNYH/WRSwRyeOxJOM NbkF/Kn8X20K7Qx7208qphXiXedSbI6ZU7CUac2AuFCg62sli+W7w+BX12487UzKiH13CE8nTSs MMHYh7MbYbLDvaQrth5BrpIcoIXOQ4DV6aVf4d2lrTsNaKTePCwoU0ZG8UsCCnmdKy5+9AM846v ENcYmolNa0bRZfxEpVBgtJIOEZcyqIj64oOjT6V6KPeBi+9l0tYPmzTmbdu05md1IfPYApAwExG kRSKMS42x8A8pVmhzchAl4veziWJ/iE8zxOCZiBRM9/NrI/RoFCM+MwSXj+RwuSB0Am9CvOY0aR CY6PuheYkio3kSy6HB7iOAXP2n98A261PTezLmTu5JT4sN2DTHp2B9FQzRiZg/l0SLFQFEQ== X-Received: by 2002:a05:6870:b3ed:b0:455:c1d1:9cc0 with SMTP id 586e51a60fabf-456901aa97bmr914974fac.19.1784283053390; Fri, 17 Jul 2026 03:10:53 -0700 (PDT) Received: from localhost ([74.80.182.90]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-4568e61cee3sm970024fac.9.2026.07.17.03.10.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 Jul 2026 03:10:51 -0700 (PDT) Date: Fri, 17 Jul 2026 13:10:44 +0300 From: Dan Carpenter To: ziniu.wang_1@oss.nxp.com Cc: adrian.hunter@intel.com, ulfh@kernel.org, haibo.chen@nxp.com, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, imx@lists.linux.dev, linux-mmc@vger.kernel.org, s32@nxp.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, harshit.m.mogalapalli@oracle.com Subject: Re: [PATCH v7 8/8] mmc: sdhci-esdhc-imx: fix resume error handling Message-ID: References: <20260715071818.272318-1-ziniu.wang_1@oss.nxp.com> <20260715071818.272318-9-ziniu.wang_1@oss.nxp.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260715071818.272318-9-ziniu.wang_1@oss.nxp.com> On Wed, Jul 15, 2026 at 03:18:18PM +0800, ziniu.wang_1@oss.nxp.com wrote: > From: Luke Wang > > Check pm_runtime_force_resume() return value in resume. If it fails > (clock enable failure), return immediately since accessing hardware > registers on an unclocked device would cause a kernel panic. > The commit message says "would" which implies maybe... Is this something that happens in real life? > The early return intentionally skips enable_irq() and > sdhci_disable_irq_wakeups() because the IRQ handler reads > SDHCI_INT_STATUS, which would also fault without clocks. The PM runtime > usage counter leak only affects this already-broken device instance and > is an acceptable tradeoff to preserve system stability. > > Remove the return value check for mmc_gpio_set_cd_wake(host->mmc, false) > since disable_irq_wake() called internally always returns 0. I kind of agree with Sashiko here that keeping the check is better future proofing. > > Also return 0 explicitly on the success path instead of propagating > stale return values. Unrelated cleans... :/ > > Fixes: 676a83855614 ("mmc: host: sdhci-esdhc-imx: refactor the system PM logic") > Acked-by: Adrian Hunter > Reviewed-by: Frank Li > Signed-off-by: Luke Wang > --- > drivers/mmc/host/sdhci-esdhc-imx.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c > index 290a3172931b..18f4905c15b9 100644 > --- a/drivers/mmc/host/sdhci-esdhc-imx.c > +++ b/drivers/mmc/host/sdhci-esdhc-imx.c > @@ -2123,12 +2123,12 @@ static int sdhci_esdhc_resume(struct device *dev) > dev_warn(dev, "Failed to restore pinctrl state\n"); > } > > - pm_runtime_force_resume(dev); > - > - ret = mmc_gpio_set_cd_wake(host->mmc, false); > + ret = pm_runtime_force_resume(dev); > if (ret) > return ret; > > + mmc_gpio_set_cd_wake(host->mmc, false); > + copy-paste-checker says that similar code exists in: drivers/mmc/host/sdhci-tegra.c 1879 static int sdhci_tegra_resume(struct device *dev) 1880 { 1881 struct sdhci_host *host = dev_get_drvdata(dev); 1882 int ret; 1883 1884 ret = mmc_gpio_set_cd_wake(host->mmc, false); 1885 if (ret) 1886 return ret; 1887 1888 ret = pm_runtime_force_resume(dev); 1889 if (ret) 1890 return ret; In this case we are calling mmc_gpio_set_cd_wake() before calling resume so it's surprising that that doesn't cause a panic.. 1891 1892 sdhci_tegra_program_stream_id(host); 1893 1894 ret = sdhci_resume_host(host); 1895 if (ret) 1896 goto disable_clk; 1897 1898 if (host->mmc->caps2 & MMC_CAP2_CQE) { 1899 ret = cqhci_resume(host->mmc); 1900 if (ret) 1901 goto suspend_host; 1902 } 1903 1904 return 0; 1905 1906 suspend_host: 1907 sdhci_suspend_host(host); 1908 disable_clk: 1909 pm_runtime_force_suspend(dev); 1910 return ret; 1911 } regards, dan carpenter