On Fri, Aug 01, 2025 at 01:09:07AM -0600, Theo de Raadt wrote: > There are two issues being solved. One is blocking kernel behaviors > during the time when the kernel is fully in control. The second issue > is ignoring the user's requests. If the timer is simply extended > once the kernel-resume parts have finished, we get a nice 10 second > block on user interaction on all machines.
I see. It becomes a much simpler diff: M sys/kern/subr_suspend.c | 2+ 1- 1 file changed, 2 insertions(+), 1 deletion(-) commit - 3b565b6513502b4d00eb2ea3c0e8d1aa648f5db2 commit + 10825f0f1315cbb61913a0003512928e8419ae8a blob - 3c83a049cb97e4b3026fd9c3b75d3b1eff2d3caa blob + 08dd1e46c3fab68bdb8759bc6704af153d45ccf0 --- sys/kern/subr_suspend.c +++ sys/kern/subr_suspend.c @@ -218,11 +218,12 @@ fail_hiballoc: cpu_setperf(perflevel); /* Restore hw.setperf */ if (suspend_finish(v) == EAGAIN) goto top; + resume_time = getuptime(); return (error); } int resuming(void) { - return (getuptime() < resume_time + 15); + return (getuptime() < resume_time + 10); }