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)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 14 Apr 2015 12:51:52 +0000 (14:51 +0200)
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>
Cc: 3.16+ <stable@vger.kernel.org> # 3.16+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/tbinstal.c

index 0d184c4..7e69bc7 100644 (file)
@@ -349,7 +349,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);
                        }
                }