• Jamie Iles's avatar
    ACPI: debug: don't allow debugging when ACPI is disabled · 0fada277
    Jamie Iles authored
    If ACPI is disabled then loading the acpi_dbg module will result in the
    following splat when lock debugging is enabled.
    
      DEBUG_LOCKS_WARN_ON(lock->magic != lock)
      WARNING: CPU: 0 PID: 1 at kernel/locking/mutex.c:938 __mutex_lock+0xa10/0x1290
      Kernel panic - not syncing: panic_on_warn set ...
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.9.0-rc8+ #103
      Hardware name: linux,dummy-virt (DT)
      Call trace:
       dump_backtrace+0x0/0x4d8
       show_stack+0x34/0x48
       dump_stack+0x174/0x1f8
       panic+0x360/0x7a0
       __warn+0x244/0x2ec
       report_bug+0x240/0x398
       bug_handler+0x50/0xc0
       call_break_hook+0x160/0x1d8
       brk_handler+0x30/0xc0
       do_debug_exception+0x184/0x340
       el1_dbg+0x48/0xb0
       el1_sync_handler+0x170/0x1c8
       el1_sync+0x80/0x100
       __mutex_lock+0xa10/0x1290
       mutex_lock_nested+0x6c/0xc0
       acpi_register_debugger+0x40/0x88
       acpi_aml_init+0xc4/0x114
       do_one_initcall+0x24c/0xb10
       kernel_init_freeable+0x690/0x728
       kernel_init+0x20/0x1e8
       ret_from_fork+0x10/0x18
    
    This is because acpi_debugger.lock has not been initialized as
    acpi_debugger_init() is not called when ACPI is disabled.  Fail module
    loading to avoid this and any subsequent problems that might arise by
    trying to debug AML when ACPI is disabled.
    
    Fixes: 8cfb0cdf ("ACPI / debugger: Add IO interface to access debugger functionalities")
    Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
    Signed-off-by: default avatarJamie Iles <jamie@nuviainc.com>
    Cc: 4.10+ <stable@vger.kernel.org> # 4.10+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    0fada277
acpi_dbg.c 17.9 KB