From: Sasha Levin <sashal@kernel.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: Sasha Levin <sashal@kernel.org>,
linux-pm@vger.kernel.org, regressions@lists.linux.dev,
stable@vger.kernel.org, Jiakai Xu <xujiakai24@mails.ucas.ac.cn>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, Marcin Dawid <mdawid@gmail.com>
Subject: Re: [REGRESSION] 6.12.y: s2idle hangs after 171ef40fce41 ("PM: sleep: Use complete() in device_pm_sleep_init()")
Date: Sat, 29 Aug 2026 22:56:44 -0400 [thread overview]
Message-ID: <20260829-stable-daily-0004-pm-sleep-complete-revert@kernel.org> (raw)
In-Reply-To: <20260829094750.574649-1-mdawid@gmail.com>
On Sat, Aug 29, 2026 at 11:47:47AM +0200, Marcin Dawid wrote:
> My ThinkPad P16v stopped suspending after a kernel update. I bisected
> the problem to commit 171ef40fce41 ("PM: sleep: Use complete() in
> device_pm_sleep_init()"), the 6.12.y backport of mainline commit
> 3855941f1e40. Reverting this commit fixes the problem.
Thanks for the bisect. Queued the revert for 6.12, 6.6, 6.1, 5.15 and 5.10.
> I only see the hang on 6.12.y. I also tested 6.18.45, 7.1.8 and mainline
> 7.2, which carry the same commit and the laptop suspends normally on all
> three (see the table below).
That matches what the code shows, so 6.18 and newer keep the commit. Upstream's
argument for complete() over complete_all() relies on the completion being
reinitialised for every device by dpm_clear_async_state(), which only exists
from the v6.15/v6.16 async-suspend rework. 6.12 and older have no such call
site, so a device that never reaches a phase list keeps the one-shot token and
a second waiter blocks forever - the same exposure your machine hit, on all
five of those trees.
--
Thanks,
Sasha
prev parent reply other threads:[~2026-08-30 3:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-29 9:47 [REGRESSION] 6.12.y: s2idle hangs after 171ef40fce41 ("PM: sleep: Use complete() in device_pm_sleep_init()") Marcin Dawid
2026-08-30 2:56 ` Sasha Levin [this message]
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=20260829-stable-daily-0004-pm-sleep-complete-revert@kernel.org \
--to=sashal@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mdawid@gmail.com \
--cc=rafael@kernel.org \
--cc=regressions@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=xujiakai24@mails.ucas.ac.cn \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.