Page MenuHomeFreeBSD

acpi: Fix not calling AcpiLeaveSleepState() in S3 path
ClosedPublic

Authored by obiwac on Jan 19 2026, 1:30 PM.
Tags
None
Referenced Files
F147680093: D54777.diff
Thu, Mar 12, 9:03 PM
Unknown Object (File)
Mon, Mar 9, 12:19 AM
Unknown Object (File)
Tue, Mar 3, 1:28 PM
Unknown Object (File)
Sat, Feb 28, 1:04 PM
Unknown Object (File)
Sat, Feb 14, 6:57 PM
Unknown Object (File)
Fri, Feb 13, 11:56 AM
Unknown Object (File)
Feb 10 2026, 1:39 AM
Unknown Object (File)
Feb 7 2026, 10:36 PM
Subscribers

Details

Summary

When resuming from ACPI suspend, the ACPI_SS_SLP_PREP bit in slp_state
was being checked and subsequently unset when calling resumeclock().
This bit was also being checked for the AcpiLeaveSleepState() call in
the non-s2idle path, but having just been unset, it was never actually
being called.

Change this so that resumeclock() is always being called (since we never
goto breakout between suspendclock() and resumeclock() anyway) and
ACPI_SS_SLP_PREP is purely used for AcpiEnterSleepStatePrep() and
AcpiLeaveSleepState() in the non-s2idle paths.

PR: 292568
Reported by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
Fixes: 7669cbd0f064 (“acpi: Suspend-to-idle support (s2idle)”)
Sponsored by: The FreeBSD Foundation

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Ah, sorry... I'm pretty sure I had seen that problem during the review of D48734 at some point but forgot about it...

This revision is now accepted and ready to land.Jan 19 2026, 4:04 PM

Macro shipit:

It resolves the issue reported in PR 292568. Thank you for the fix!