OSDN Git Service

ACPICA: Dispatcher: Remove unnecessary call to debugger
authorLv Zheng <lv.zheng@intel.com>
Mon, 5 Jun 2017 08:40:26 +0000 (16:40 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 12 Jun 2017 12:58:42 +0000 (14:58 +0200)
ACPICA commit eaa455accf165fee2df26410e271aab162264f6c

UBSAN reports an index out of range use in dsutils.c.
  acpi_db_display_argument_object(
   walk_state->operands[walk_state->num_operands - 1],
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   walk_state);

This call was simply wrong, generated redundant debugger messages, and
resulted in a -1 index into the operand stack. Linux kernel bug #120351
(link #1) and #194845 (link #2).

Originally fixed by Navin P.S. (link #1, comment 8), refined by Lv Zheng
(link #3).

Link: https://bugzilla.kernel.org/show_bug.cgi?id=120351
Link: https://bugzilla.kernel.org/show_bug.cgi?id=194845
Link: https://github.com/acpica/acpica/pull/245
Link: https://github.com/acpica/acpica/commit/eaa455ac
Reported-by: Wilfried Klaebe <linux-kernel@lebenslange-mailadresse.de>
Reported-by: Ronald Warsow <rwarsow@gmx.de>
Original-by: Navin P.S. <navinp1912@gmail.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/dsutils.c

index 406edec..0dabd9b 100644 (file)
@@ -633,15 +633,6 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state,
 
                if ((op_info->flags & AML_HAS_RETVAL) ||
                    (arg->common.flags & ACPI_PARSEOP_IN_STACK)) {
-                       ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
-                                         "Argument previously created, already stacked\n"));
-
-                       acpi_db_display_argument_object(walk_state->
-                                                       operands[walk_state->
-                                                                num_operands -
-                                                                1],
-                                                       walk_state);
-
                        /*
                         * Use value that was already previously returned
                         * by the evaluation of this argument