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
..
2016-09-06 11:02:36 -07:00
2016-09-07 21:24:42 -07:00
2016-09-09 14:52:05 -07:00
2016-07-30 21:01:36 -07:00
2016-09-03 10:40:57 -07:00
2016-07-30 21:01:36 -07:00
2016-08-04 09:59:37 -04:00
2016-08-01 18:36:01 -04:00
2016-07-20 23:39:36 -07:00
2016-09-11 14:41:49 -07:00
2016-09-03 11:38:43 -07:00
2016-08-12 14:59:10 +05:30
2016-08-06 00:01:33 -04:00
2016-08-05 09:48:22 -04:00
2016-09-16 04:29:14 -04:00
2016-09-06 11:06:52 -07:00
2016-08-01 18:36:01 -04:00
2016-09-09 15:11:35 +02:00
2016-08-02 19:35:40 -04:00
2016-08-06 09:20:13 -04:00