• Luca Coelho's avatar
    iwlwifi: pcie: move rx workqueue initialization to iwl_trans_pcie_alloc() · 10a54d81
    Luca Coelho authored
    Work queues cannot be allocated when a mutex is held because the mutex
    may be in use and that would make it sleep.  Doing so generates the
    following splat with 4.13+:
    
    [   19.513298] ======================================================
    [   19.513429] WARNING: possible circular locking dependency detected
    [   19.513557] 4.13.0-rc5+ #6 Not tainted
    [   19.513638] ------------------------------------------------------
    [   19.513767] cpuhp/0/12 is trying to acquire lock:
    [   19.513867]  (&tz->lock){+.+.+.}, at: [<ffffffff924afebb>] thermal_zone_get_temp+0x5b/0xb0
    [   19.514047]
    [   19.514047] but task is already holding lock:
    [   19.514166]  (cpuhp_state){+.+.+.}, at: [<ffffffff91cc4baa>] cpuhp_thread_fun+0x3a/0x210
    [   19.514338]
    [   19.514338] which lock already depends on the new lock.
    
    This lock dependency already existed with previous kernel versions,
    but it was not detected until commit 49dfe2a6 ("cpuhotplug: Link
    lock stacks for hotplug callbacks") was introduced.
    Reported-by: default avatarDavid Weinehall <david.weinehall@intel.com>
    Reported-by: default avatarJiri Kosina <jikos@kernel.org>
    Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    10a54d81
internal.h 26.3 KB