OSDN Git Service

ACPICA: Tables: Don't release ACPI_MTX_TABLES in acpi_tb_install_standard_table().
authorOctavian Purdila <octavian.purdila@intel.com>
Mon, 13 Apr 2015 03:49:05 +0000 (11:49 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 May 2015 20:03:57 +0000 (22:03 +0200)
commit 77ddc2fe08329e375505bc36a3df3233fe57317b upstream.

ACPICA commit c70434d4da13e65b6163c79a5aa16b40193631c7

ACPI_MTX_TABLES is acquired and released by the callers of
acpi_tb_install_standard_table() so releasing it in the function itself is
causing the following error in Linux kernel if the table is reloaded:

ACPI Error: Mutex [0x2] is not acquired, cannot release (20141107/utmutex-321)
Call Trace:
  [<ffffffff81b0bd48>] dump_stack+0x4f/0x7b
  [<ffffffff81546bf5>] acpi_ut_release_mutex+0x47/0x67
  [<ffffffff81544357>] acpi_load_table+0x73/0xcb

Link: https://github.com/acpica/acpica/commit/c70434d4
Signed-off-by: Octavian Purdila <octavian.purdila@intel.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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/acpica/tbinstal.c

index 9bad45e..7fbc2b9 100644 (file)
@@ -346,7 +346,6 @@ acpi_tb_install_standard_table(acpi_physical_address address,
                                 */
                                acpi_tb_uninstall_table(&new_table_desc);
                                *table_index = i;
-                               (void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
                                return_ACPI_STATUS(AE_OK);
                        }
                }