diff options
author | Sergei Miroshnichenko <sergeimir@emcraft.com> | 2016-09-07 16:51:12 +0300 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2016-09-22 11:01:21 +0300 |
commit | 9abefcb1aaa58b9d5aa40a8bb12c87d02415e4c8 (patch) | |
tree | ff081f6644b855d62aae2a48a8f6f4a8c00d7a78 /include/linux/dma-direction.h | |
parent | 7e32b44361abc77fbc01f2b97b045c405b2583e5 (diff) | |
download | linux-9abefcb1aaa58b9d5aa40a8bb12c87d02415e4c8.tar.xz |
can: dev: fix deadlock reported after bus-off
A timer was used to restart after the bus-off state, leading to a
relatively large can_restart() executed in an interrupt context,
which in turn sets up pinctrl. When this happens during system boot,
there is a high probability of grabbing the pinctrl_list_mutex,
which is locked already by the probe() of other device, making the
kernel suspect a deadlock condition [1].
To resolve this issue, the restart_timer is replaced by a delayed
work.
[1] https://github.com/victronenergy/venus/issues/24
Signed-off-by: Sergei Miroshnichenko <sergeimir@emcraft.com>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'include/linux/dma-direction.h')
0 files changed, 0 insertions, 0 deletions