i2c-hid on a stack of its own; PSOGM powers off after three minutes
The touchpad driver crashed the ASUS TUF A15 at boot. Its thread runs the firmware's AML -- _DSM, _PS0, _CRS -- through uACPI at -O0, on an 8 KB kernel stack, and kernel stacks are one array: running off the end lands in the next thread's stack, and the machine dies a moment later in some other code. The thread now runs on a 64 KB stack of its own, through SCFF's call_on_stack(). And a crashed laptop sat with its fans up until somebody held the power button, since the other processors keep running. On an ordinary boot the PSOGM now says it will power off, and does, after three minutes: SLP_TYP from \_S5, read at boot, written straight to PM1 control with no AML, which could sleep or wait on a lock a dead processor holds. A verbose boot keeps the screen up for ever. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
parent
c79b1d6d6d
commit
b15fb2fdaa
4 changed files with 85 additions and 3 deletions
|
|
@ -30,4 +30,5 @@ void acpi_thread_start(void);
|
|||
void acpi_pci_route(void);
|
||||
|
||||
int acpi_poweroff(void); // S5; returns only on failure
|
||||
void acpi_poweroff_now(void); // S5 from a panic, no AML; returns only on failure
|
||||
int acpi_reboot(void); // the FADT reset register; ditto
|
||||
|
|
|
|||
Loading…
Reference in a new issue