kernel/linux-2.6-acpi-debug-infinite-loop.patch

25 lines
1.1 KiB
Diff
Raw Normal View History

2010-07-29 23:46:31 +00:00
--- 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 */