Skip to content

Commit

Permalink
ACPICA: Limit maximum time for Sleep() operator
Browse files Browse the repository at this point in the history
To prevent accidental deep sleeps, limit the maximum time that
Sleep() will sleep. Configurable, default maximum is two seconds.
ACPICA bugzilla 854.

http://www.acpica.org/bugzilla/show_bug.cgi?id=854

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Bob Moore authored and Len Brown committed Jun 12, 2010
1 parent d703266 commit 9cbfa18
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 0 deletions.
4 changes: 4 additions & 0 deletions drivers/acpi/acpica/acconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@

#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF

/* Maximum sleep allowed via Sleep() operator */

#define ACPI_MAX_SLEEP 20000 /* Two seconds */

/******************************************************************************
*
* ACPI Specification constants (Do not change unless the specification changes)
Expand Down
8 changes: 8 additions & 0 deletions drivers/acpi/acpica/exsystem.c
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,14 @@ acpi_status acpi_ex_system_do_sleep(u64 how_long)

acpi_ex_relinquish_interpreter();

/*
* For compatibility with other ACPI implementations and to prevent
* accidental deep sleeps, limit the sleep time to something reasonable.
*/
if (how_long > ACPI_MAX_SLEEP) {
how_long = ACPI_MAX_SLEEP;
}

acpi_os_sleep(how_long);

/* And now we must get the interpreter again */
Expand Down

0 comments on commit 9cbfa18

Please sign in to comment.