Re: [PATCH v2] iwlwifi: pcie: move rx workqueue initialization to iwl_trans_pcie_alloc()

From: Luca Coelho
Date: Thu Aug 24 2017 - 02:00:45 EST


On Tue, 2017-08-22 at 10:37 +0300, Luca Coelho wrote:
> From: Luca Coelho <luciano.coelho@xxxxxxxxx>
>
> 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 49dfe2a67797 ("cpuhotplug: Link
> lock stacks for hotplug callbacks") was introduced.
>
> Reported-by: David Weinehall <david.weinehall@xxxxxxxxx>
> Reported-by: Jiri Kosina <jikos@xxxxxxxxxx>
> Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>

Jiri, did you have a chance to try this out? I'm about to ask Kalle to
merge this so it gets in in time for 4.13-rc7.

--
Cheers,
Luca.