summaryrefslogtreecommitdiffstats
path: root/linux-2.6-acpi-debug-infinite-loop.patch
diff options
context:
space:
mode:
Diffstat (limited to 'linux-2.6-acpi-debug-infinite-loop.patch')
-rw-r--r--linux-2.6-acpi-debug-infinite-loop.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/linux-2.6-acpi-debug-infinite-loop.patch b/linux-2.6-acpi-debug-infinite-loop.patch
new file mode 100644
index 000000000..45cb05165
--- /dev/null
+++ b/linux-2.6-acpi-debug-infinite-loop.patch
@@ -0,0 +1,24 @@
+--- linux-2.6.34.noarch/drivers/acpi/acpica/dsopcode.c~ 2010-07-01 14:40:44.000000000 -0400
++++ linux-2.6.34.noarch/drivers/acpi/acpica/dsopcode.c 2010-07-01 14:48:56.000000000 -0400
+@@ -1276,6 +1276,10 @@ acpi_ds_exec_end_control_op(struct acpi_
+ * 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;
+--- 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 */
+