linux-uconsole/include/linux/can
Sergei Miroshnichenko 7677956e40 can: dev: fix deadlock reported after bus-off
commit 9abefcb1aa 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-10-07 15:23:40 +02:00
..
platform can: unify identifiers to ensure unique include processing 2014-05-19 09:38:24 +02:00
core.h can: unify identifiers to ensure unique include processing 2014-05-19 09:38:24 +02:00
dev.h can: dev: fix deadlock reported after bus-off 2016-10-07 15:23:40 +02:00
led.h can: headers: make header files self contained 2015-09-21 08:38:22 +02:00
skb.h can: replace timestamp as unique skb attribute 2015-07-12 21:13:22 +02:00