lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aKAfRFPJQM_EtAKF@xhacker>
Date: Sat, 16 Aug 2025 14:03:48 +0800
From: Jisheng Zhang <jszhang@...nel.org>
To: Bough Chen <haibo.chen@....com>
Cc: Ulf Hansson <ulf.hansson@...aro.org>,
	Aubin Constans <aubin.constans@...rochip.com>,
	Nicolas Ferre <nicolas.ferre@...rochip.com>,
	Alexandre Belloni <alexandre.belloni@...tlin.com>,
	Claudiu Beznea <claudiu.beznea@...on.dev>,
	Manuel Lauss <manuel.lauss@...il.com>,
	Micha�� Miros��aw <mirq-linux@...e.qmqm.pl>,
	Jaehoon Chung <jh80.chung@...sung.com>,
	Krzysztof Kozlowski <krzk@...nel.org>,
	Alim Akhtar <alim.akhtar@...sung.com>,
	Heiko Stuebner <heiko@...ech.de>,
	Russell King <linux@...linux.org.uk>,
	Chaotian Jing <chaotian.jing@...iatek.com>,
	Matthias Brugger <matthias.bgg@...il.com>,
	AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>,
	Shawn Guo <shawnguo@...nel.org>,
	Sascha Hauer <s.hauer@...gutronix.de>,
	Pengutronix Kernel Team <kernel@...gutronix.de>,
	Fabio Estevam <festevam@...il.com>,
	Adrian Hunter <adrian.hunter@...el.com>,
	Kamal Dasu <kamal.dasu@...adcom.com>,
	Al Cooper <alcooperx@...il.com>,
	Broadcom internal kernel review list <bcm-kernel-feedback-list@...adcom.com>,
	Florian Fainelli <florian.fainelli@...adcom.com>,
	Michal Simek <michal.simek@....com>,
	Eugen Hristev <eugen.hristev@...aro.org>,
	Vignesh Raghavendra <vigneshr@...com>,
	Ben Dooks <ben-linux@...ff.org>, Viresh Kumar <vireshk@...nel.org>,
	Orson Zhai <orsonzhai@...il.com>,
	Baolin Wang <baolin.wang@...ux.alibaba.com>,
	Chunyan Zhang <zhang.lyra@...il.com>,
	Patrice Chotard <patrice.chotard@...s.st.com>,
	Thierry Reding <thierry.reding@...il.com>,
	Jonathan Hunter <jonathanh@...dia.com>,
	Chen-Yu Tsai <wens@...e.org>,
	Jernej Skrabec <jernej.skrabec@...il.com>,
	Samuel Holland <samuel@...lland.org>,
	Alexey Charkov <alchark@...il.com>,
	"linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 18/38] mmc: sdhci-esdhc-imx: use modern PM macros

On Fri, Aug 15, 2025 at 03:23:56AM +0000, Bough Chen wrote:
> > -----Original Message-----
> > From: Jisheng Zhang <jszhang@...nel.org>
> > Sent: 2025Ò´8êÅ15ìí 9:34
> > To: Ulf Hansson <ulf.hansson@...aro.org>; Aubin Constans
> > <aubin.constans@...rochip.com>; Nicolas Ferre
> > <nicolas.ferre@...rochip.com>; Alexandre Belloni
> > <alexandre.belloni@...tlin.com>; Claudiu Beznea
> > <claudiu.beznea@...on.dev>; Manuel Lauss <manuel.lauss@...il.com>;
> > Micha©© Miros©©aw <mirq-linux@...e.qmqm.pl>; Jaehoon Chung
> > <jh80.chung@...sung.com>; Krzysztof Kozlowski <krzk@...nel.org>; Alim
> > Akhtar <alim.akhtar@...sung.com>; Heiko Stuebner <heiko@...ech.de>;
> > Russell King <linux@...linux.org.uk>; Chaotian Jing
> > <chaotian.jing@...iatek.com>; Matthias Brugger <matthias.bgg@...il.com>;
> > AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>;
> > Shawn Guo <shawnguo@...nel.org>; Sascha Hauer <s.hauer@...gutronix.de>;
> > Pengutronix Kernel Team <kernel@...gutronix.de>; Fabio Estevam
> > <festevam@...il.com>; Adrian Hunter <adrian.hunter@...el.com>; Kamal
> > Dasu <kamal.dasu@...adcom.com>; Al Cooper <alcooperx@...il.com>;
> > Broadcom internal kernel review list
> > <bcm-kernel-feedback-list@...adcom.com>; Florian Fainelli
> > <florian.fainelli@...adcom.com>; Bough Chen <haibo.chen@....com>; Michal
> > Simek <michal.simek@....com>; Eugen Hristev <eugen.hristev@...aro.org>;
> > Vignesh Raghavendra <vigneshr@...com>; Ben Dooks <ben-linux@...ff.org>;
> > Viresh Kumar <vireshk@...nel.org>; Orson Zhai <orsonzhai@...il.com>;
> > Baolin Wang <baolin.wang@...ux.alibaba.com>; Chunyan Zhang
> > <zhang.lyra@...il.com>; Patrice Chotard <patrice.chotard@...s.st.com>;
> > Thierry Reding <thierry.reding@...il.com>; Jonathan Hunter
> > <jonathanh@...dia.com>; Chen-Yu Tsai <wens@...e.org>; Jernej Skrabec
> > <jernej.skrabec@...il.com>; Samuel Holland <samuel@...lland.org>; Alexey
> > Charkov <alchark@...il.com>
> > Cc: linux-mmc@...r.kernel.org; linux-kernel@...r.kernel.org
> > Subject: [PATCH 18/38] mmc: sdhci-esdhc-imx: use modern PM macros
> > 
> > Use the modern PM macros for the suspend and resume functions to be
> > automatically dropped by the compiler when CONFIG_PM or
> > CONFIG_PM_SLEEP are disabled, without having to use #ifdef guards.
> > 
> > This has the advantage of always compiling these functions in, independently of
> > any Kconfig option. Thanks to that, bugs and other regressions are subsequently
> > easier to catch.
> 
> Hi Jisheng,

Hi,

> 
> When I remove all the configs under Power management options I got the following build warning:
> 
> drivers/mmc/host/sdhci-esdhc-imx.c:2079:12: warning: ¡®sdhci_esdhc_resume¡¯ defined but not used [-Wunused-function]
>  2079 | static int sdhci_esdhc_resume(struct device *dev)
>       |            ^~~~~~~~~~~~~~~~~~
>   CC      drivers/mmc/host/cqhci-core.o
> drivers/mmc/host/sdhci-esdhc-imx.c:2017:12: warning: ¡®sdhci_esdhc_suspend¡¯ defined but not used [-Wunused-function]
>  2017 | static int sdhci_esdhc_suspend(struct device *dev)
>       |            ^~~~~~~~~~~~~~~~~~~

Hmm interesting, what's test toolchain? I tested this patch with gcc14
with below three combinations before sending out, no warnings at all:
PM + PM_SLEEP
PM only
!PM + ! PM_SLEEP

The sdhci_esdhc_suspend|resume are referenced by SYSTEM_SLEEP_PM_OPS.
The pm_sleep_ptr() macro does the tricky, when both PM and PM_SLEEP are
disabled, they are optimized out.

So can you plz kindly show your toolchain? I will check

Thanks
> 
> Regards
> Haibo Chen
> > 
> > Signed-off-by: Jisheng Zhang <jszhang@...nel.org>
> > ---
> >  drivers/mmc/host/sdhci-esdhc-imx.c | 13 +++----------
> >  1 file changed, 3 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c
> > b/drivers/mmc/host/sdhci-esdhc-imx.c
> > index a040c0896a7b..a7a5df673b0f 100644
> > --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> > +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> > @@ -1650,7 +1650,6 @@ static void sdhci_esdhc_imx_hwinit(struct sdhci_host
> > *host)
> >  	}
> >  }
> > 
> > -#ifdef CONFIG_PM_SLEEP
> >  static void sdhc_esdhc_tuning_save(struct sdhci_host *host)  {
> >  	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); @@ -1707,7
> > +1706,6 @@ static void sdhc_esdhc_tuning_restore(struct sdhci_host *host)
> >  		       host->ioaddr + ESDHC_TUNE_CTRL_STATUS);
> >  	}
> >  }
> > -#endif
> > 
> >  static void esdhc_cqe_enable(struct mmc_host *mmc)  { @@ -2016,7
> > +2014,6 @@ static void sdhci_esdhc_imx_remove(struct platform_device
> > *pdev)
> >  		cpu_latency_qos_remove_request(&imx_data->pm_qos_req);
> >  }
> > 
> > -#ifdef CONFIG_PM_SLEEP
> >  static int sdhci_esdhc_suspend(struct device *dev)  {
> >  	struct sdhci_host *host = dev_get_drvdata(dev); @@ -2112,9 +2109,7 @@
> > static int sdhci_esdhc_resume(struct device *dev)
> > 
> >  	return ret;
> >  }
> > -#endif
> > 
> > -#ifdef CONFIG_PM
> >  static int sdhci_esdhc_runtime_suspend(struct device *dev)  {
> >  	struct sdhci_host *host = dev_get_drvdata(dev); @@ -2188,12 +2183,10
> > @@ static int sdhci_esdhc_runtime_resume(struct device *dev)
> >  		cpu_latency_qos_remove_request(&imx_data->pm_qos_req);
> >  	return err;
> >  }
> > -#endif
> > 
> >  static const struct dev_pm_ops sdhci_esdhc_pmops = {
> > -	SET_SYSTEM_SLEEP_PM_OPS(sdhci_esdhc_suspend, sdhci_esdhc_resume)
> > -	SET_RUNTIME_PM_OPS(sdhci_esdhc_runtime_suspend,
> > -				sdhci_esdhc_runtime_resume, NULL)
> > +	SYSTEM_SLEEP_PM_OPS(sdhci_esdhc_suspend, sdhci_esdhc_resume)
> > +	RUNTIME_PM_OPS(sdhci_esdhc_runtime_suspend,
> > +sdhci_esdhc_runtime_resume, NULL)
> >  };
> > 
> >  static struct platform_driver sdhci_esdhc_imx_driver = { @@ -2201,7 +2194,7
> > @@ static struct platform_driver sdhci_esdhc_imx_driver = {
> >  		.name	= "sdhci-esdhc-imx",
> >  		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
> >  		.of_match_table = imx_esdhc_dt_ids,
> > -		.pm	= &sdhci_esdhc_pmops,
> > +		.pm	= pm_ptr(&sdhci_esdhc_pmops),
> >  	},
> >  	.probe		= sdhci_esdhc_imx_probe,
> >  	.remove		= sdhci_esdhc_imx_remove,
> > --
> > 2.50.0
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ