2010-07-29 23:46:31 +00:00
|
|
|
--- linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h~ 2010-07-01 14:49:03.000000000 -0400
|
|
|
|
+++ linux-2.6.34.noarch/drivers/acpi/acpica/acconfig.h 2010-07-01 14:49:17.000000000 -0400
|
|
|
|
@@ -117,7 +117,7 @@
|
|
|
|
|
|
|
|
/* Maximum number of While() loop iterations before forced abort */
|
|
|
|
|
|
|
|
-#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
|
|
|
|
+#define ACPI_MAX_LOOP_ITERATIONS 0xFFFFFF
|
|
|
|
|
|
|
|
/* Maximum sleep allowed via Sleep() operator */
|
|
|
|
|
2011-03-28 19:15:32 +00:00
|
|
|
--- a/drivers/acpi/acpica/dscontrol.c
|
|
|
|
+++ b/drivers/acpi/acpica/dscontrol.c
|
|
|
|
@@ -212,6 +212,11 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state,
|
|
|
|
* loop does not implement a timeout.
|
|
|
|
*/
|
|
|
|
control_state->control.loop_count++;
|
|
|
|
+ if ((control_state->control.loop_count > 1) &&
|
|
|
|
+ (control_state->control.loop_count % 0xffff == 0))
|
|
|
|
+ printk("ACPI: While loop taking a really long time. loop_count=0x%x\n",
|
|
|
|
+ control_state->control.loop_count);
|
|
|
|
+
|
|
|
|
if (control_state->control.loop_count >
|
|
|
|
ACPI_MAX_LOOP_ITERATIONS) {
|
|
|
|
status = AE_AML_INFINITE_LOOP;
|