linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Paul Cercueil <paul@crapouillou.net>
Cc: "Rafael J . Wysocki" <rafael@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Jonathan Cameron <jic23@kernel.org>,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	Linus Walleij <linus.walleij@linaro.org>,
	"Arnd Bergmann" <arnd@arndb.de>, Len Brown <len.brown@intel.com>,
	Pavel Machek <pavel@ucw.cz>, <list@opendingux.net>,
	<linux-iio@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-mips@vger.kernel.org>, <linux-mmc@vger.kernel.org>,
	<linux-pm@vger.kernel.org>
Subject: Re: [PATCH 1/8] PM: core: Remove DEFINE_UNIVERSAL_DEV_PM_OPS() macro
Date: Wed, 5 Jan 2022 09:52:52 +0000	[thread overview]
Message-ID: <20220105095252.00007f7f@Huawei.com> (raw)
In-Reply-To: <20220104214214.198843-2-paul@crapouillou.net>

On Tue, 4 Jan 2022 21:42:07 +0000
Paul Cercueil <paul@crapouillou.net> wrote:

> The deprecated UNIVERSAL_DEV_PM_OPS() macro uses the provided callbacks
> for both runtime PM and system sleep, which is very likely to be a
> mistake, as a system sleep can be triggered while a given device is
> already PM-suspended, which would cause the suspend callback to be
> called twice.
> 
> The amount of users of UNIVERSAL_DEV_PM_OPS() is also tiny (16
> occurences) compared to the number of places where
> SET_SYSTEM_SLEEP_PM_OPS() is used with pm_runtime_force_suspend() and
> pm_runtime_force_resume(), which makes me think that none of these cases
> are actually valid.
> 
> As this macro is currently unused, remove it before someone starts to
> use it in yet another invalid case.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
I suspect there are cases where calling suspend twice doesn't matter, but
it does seem unlikely to be particularly helpful.

So, makes sense to drop this unless there is some subtlety I'm missing.
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> ---
>  include/linux/pm.h | 19 ++++++-------------
>  1 file changed, 6 insertions(+), 13 deletions(-)
> 
> diff --git a/include/linux/pm.h b/include/linux/pm.h
> index e1e9402180b9..31bbaafb06d2 100644
> --- a/include/linux/pm.h
> +++ b/include/linux/pm.h
> @@ -366,6 +366,12 @@ static const struct dev_pm_ops name = { \
>  	SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
>  }
>  
> +/* Deprecated. Use DEFINE_SIMPLE_DEV_PM_OPS() instead. */
> +#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \
> +const struct dev_pm_ops __maybe_unused name = { \
> +	SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
> +}
> +
>  /*
>   * Use this for defining a set of PM operations to be used in all situations
>   * (system suspend, hibernation or runtime PM).
> @@ -379,19 +385,6 @@ static const struct dev_pm_ops name = { \
>   * .resume_early(), to the same routines as .runtime_suspend() and
>   * .runtime_resume(), respectively (and analogously for hibernation).
>   */
> -#define DEFINE_UNIVERSAL_DEV_PM_OPS(name, suspend_fn, resume_fn, idle_fn) \
> -static const struct dev_pm_ops name = { \
> -	SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
> -	RUNTIME_PM_OPS(suspend_fn, resume_fn, idle_fn) \
> -}
> -
> -/* Deprecated. Use DEFINE_SIMPLE_DEV_PM_OPS() instead. */
> -#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \
> -const struct dev_pm_ops __maybe_unused name = { \
> -	SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \
> -}
> -
> -/* Deprecated. Use DEFINE_UNIVERSAL_DEV_PM_OPS() instead. */
>  #define UNIVERSAL_DEV_PM_OPS(name, suspend_fn, resume_fn, idle_fn) \
>  const struct dev_pm_ops __maybe_unused name = { \
>  	SET_SYSTEM_SLEEP_PM_OPS(suspend_fn, resume_fn) \


  reply	other threads:[~2022-01-05  9:52 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-04 21:42 [PATCH 0/8] DEV_PM_OPS macros rework Paul Cercueil
2022-01-04 21:42 ` [PATCH 1/8] PM: core: Remove DEFINE_UNIVERSAL_DEV_PM_OPS() macro Paul Cercueil
2022-01-05  9:52   ` Jonathan Cameron [this message]
2022-01-04 21:42 ` [PATCH 2/8] PM: core: Remove static qualifier in DEFINE_SIMPLE_DEV_PM_OPS macro Paul Cercueil
2022-01-05  9:54   ` Jonathan Cameron
2022-01-04 21:42 ` [PATCH 3/8] PM: core: Add EXPORT[_GPL]_SIMPLE_DEV_PM_OPS macros Paul Cercueil
2022-01-05 10:03   ` Jonathan Cameron
2022-01-05 10:15     ` Paul Cercueil
2022-01-05 10:48       ` Jonathan Cameron
2022-01-04 21:42 ` [PATCH 4/8] PM: runtime: Add DEFINE_RUNTIME_DEV_PM_OPS() macro Paul Cercueil
2022-01-05 10:05   ` Jonathan Cameron
2022-01-04 21:42 ` [PATCH 5/8] PM: runtime: Add EXPORT[_GPL]_RUNTIME_DEV_PM_OPS macros Paul Cercueil
2022-01-05 10:07   ` Jonathan Cameron
2022-01-05 10:49     ` Jonathan Cameron
2022-01-04 21:42 ` [PATCH 6/8] mmc: mxc: Make dev_pm_ops struct static Paul Cercueil
2022-01-05 10:12   ` Jonathan Cameron
2022-01-04 21:42 ` [PATCH 7/8] mmc: jz4740: " Paul Cercueil
2022-01-05 10:12   ` Jonathan Cameron
2022-01-04 21:42 ` [PATCH 8/8] iio: gyro: mpu3050: Use new PM macros Paul Cercueil
2022-01-05 10:11   ` Jonathan Cameron
2022-01-05 10:17     ` Paul Cercueil
2022-01-05 10:17 ` [PATCH 0/8] DEV_PM_OPS macros rework Jonathan Cameron
2022-01-05 16:32   ` Paul Cercueil
2022-01-05 17:37     ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220105095252.00007f7f@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=arnd@arndb.de \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=len.brown@intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=list@opendingux.net \
    --cc=paul@crapouillou.net \
    --cc=pavel@ucw.cz \
    --cc=rafael@kernel.org \
    --cc=ulf.hansson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).