linux_dsm_epyc7002/include/linux/can
Sergei Miroshnichenko 9abefcb1aa 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>
2016-09-22 10:01:21 +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-09-22 10:01:21 +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