diff options
| author | Sergei Miroshnichenko <sergeimir@emcraft.com> | 2016-09-07 16:51:12 +0300 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-04-11 10:58:57 +0200 |
| commit | 6d9fd9bb0ea894d1fafc4db05cb2ba7b9fafa6f9 (patch) | |
| tree | f67ea2ae878c5efd8a8d59391bc95f59969c22f1 /include/linux/root_dev.h | |
| parent | 9a5b49592d8c3d72ac321a363efde5d64cf4d274 (diff) | |
can: dev: fix deadlock reported after bus-off
commit 9abefcb1aaa58b9d5aa40a8bb12c87d02415e4c8 upstream.
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>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Willy Tarreau <w@1wt.eu>
Diffstat (limited to 'include/linux/root_dev.h')
0 files changed, 0 insertions, 0 deletions
