| Summary: | Can not power off with shutdown -p | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | Katsuyuki Miyoshi <katsubsd> | ||||
| Component: | kern | Assignee: | Andriy Gapon <avg> | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | CC: | avg, freebsd, ish | ||||
| Priority: | --- | ||||||
| Version: | CURRENT | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
|
Description
Katsuyuki Miyoshi
2024-02-02 14:43:20 UTC
(In reply to Katsuyuki Miyoshi from comment #0) Thank you very much. After reverting acpi.c to main-n267924-0f4e8037332f, I can power off my dell pc (vostro 3267) by 'shutdown -p now'. Created attachment 248154 [details]
proposed fix
Could you please test this patch instead?
(In reply to Andriy Gapon from comment #2) After applying this patch, shutdown -p works fine. Thank you! (In reply to Andriy Gapon from comment #2) This patch works fine on dell vostro 3267, too. A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=e4ab361e53945a6c3e9d68c5e5ffc11de40a35f2 commit e4ab361e53945a6c3e9d68c5e5ffc11de40a35f2 Author: Andriy Gapon <avg@FreeBSD.org> AuthorDate: 2024-02-06 08:55:13 +0000 Commit: Andriy Gapon <avg@FreeBSD.org> CommitDate: 2024-02-06 08:55:13 +0000 fix poweroff regression from 9cdf326b4f by delaying shutdown_halt The regression affected ACPI-based systems without EFI poweroff support (including VMs). The key reason for the regression is that I overlooked that poweroff is requested by RB_POWEROFF | RB_HALT combination of flags. In my opinion, that command is a bit bipolar, but since we've been doing that forever, then so be it. Because of that flag combination, the order of shutdown_final handlers that check for either flag does matter. Some additional complexity comes from platform-specific shutdown_final handlers that aim to handle multiple reboot options at once. E.g., acpi_shutdown_final handles both poweroff and reboot / reset. As explained in 9cdf326b4f, such a handler must run after shutdown_panic to give it a chance. But as the change revealed, the handler must also run before shutdown_halt, so that the system can actually power off before entering the halt limbo. Previously, shutdown_panic and shutdown_halt had the same priority which appears to be incompatible with handlers that can do both poweroff and reset. The above also applies to power cycle handlers. PR: 276784 Reported by: many Tested by: Katsuyuki Miyoshi <katsubsd@gmail.com>, Masachika ISHIZUKA <ish@amail.plala.or.jp> Fixes: 9cdf326b4fae run acpi_shutdown_final later to give other handlers a chance MFC after: 1 week sys/kern/kern_shutdown.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Thank you for testing! The fix has just been committed. |