run resume code only for S1-S4 states
Nate Lawson
nate at root.org
Wed Apr 15 10:29:46 PDT 2009
Andriy Gapon wrote:
> Guys,
> could you please review the attached patch?
>
> Its main idea is to make control flow of acpi_EnterSleepState similar
> to that of acpi_ReqSleepState: reject invalid state parameter immediately and
> handle special S5 as early as possible. Primary purpose is to avoid running resume
> code when it is not necessary - e.g. shutdown_nice() typically returns immediately
> after initiating a graceful shutdown by sending a signal to init.
>
> As such, S5 is handled right after checking/disabling re-entry.
> switch becomes unneeded, because all remaining possibilities are grouped
> into a single case. I decided to use do-while(0) statement in the place of the
> switch for the following reasons:
> 1. minimize diff by preserving indentation
> 2. minimize diff by preserving control flow that depends on break statement
> But I am not sure how this while(0) corresponds with style(9), I couldn't find any
> reference in the manual page.
Overall, still looks good.
I like the idea of gotos instead of the do/while(0). It's ok if the
indent changes.
> There is also a concern about calling shutdown_nice() outside of the Giant lock
> and binding to CPU 0. I am not sure about the pre-requisites for this function.
> John, maybe you could help me here?
I trust jkim's opinion also. So it is probably ok to leave this way.
Make sure someone with SMP tests that their system still powers off ok
with this patch.
Thanks,
--
Nate
More information about the freebsd-acpi
mailing list