diff options
author | Moshe Shemesh | 2017-10-19 14:14:29 +0300 |
---|---|---|
committer | Saeed Mahameed | 2017-10-26 00:47:27 -0700 |
commit | 6377ed0bbae6fa28853e1679d068a9106c8a8908 (patch) | |
tree | 4993b5cffac95b036566ffbe55287ec26794ff0d /drivers/net/arcnet | |
parent | 5c25f65fd1e42685f7ccd80e0621829c105785d9 (diff) |
net/mlx5: Fix health work queue spin lock to IRQ safe
spin_lock/unlock of health->wq_lock should be IRQ safe.
It was changed to spin_lock_irqsave since adding commit 0179720d6be2
("net/mlx5: Introduce trigger_health_work function") which uses
spin_lock from asynchronous event (IRQ) context.
Thus, all spin_lock/unlock of health->wq_lock should have been moved
to IRQ safe mode.
However, one occurrence on new code using this lock missed that
change, resulting in possible deadlock:
kernel: Possible unsafe locking scenario:
kernel: CPU0
kernel: ----
kernel: lock(&(&health->wq_lock)->rlock);
kernel: <Interrupt>
kernel: lock(&(&health->wq_lock)->rlock);
kernel: #012 *** DEADLOCK ***
Fixes: 2a0165a034ac ("net/mlx5: Cancel delayed recovery work when unloading the driver")
Signed-off-by: Moshe Shemesh <moshe@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/arcnet')
0 files changed, 0 insertions, 0 deletions