linux/drivers/net/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
..
c_can can: c_can: Update D_CAN TX and RX functions to 32 bit - fix Altera Cyclone access 2016-06-20 09:32:40 +02:00
cc770 can: fix assignment of error location in CAN error messages 2015-11-23 09:37:34 +01:00
ifi_canfd net: can: ifi: Configure transmitter delay 2016-09-21 10:32:24 +02:00
m_can can: fix handling of unmodifiable configuration options 2016-05-09 11:07:28 +02:00
mscan treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
rcar can: rcar_canfd: Add back-to-error-active support 2016-06-23 11:23:49 +02:00
sja1000 can: tscan1: Utilize the module_isa_driver macro 2016-06-17 15:39:43 +02:00
softing can: move can_stats.bus_off++ from can_bus_off into can_change_state 2015-01-20 13:56:53 +01:00
spi can: mcp251x: add message about sucessful/unsuccessful probe 2016-06-23 11:23:49 +02:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-06-30 05:03:36 -04:00
at91_can.c can: at91_can: RX queue could get stuck at high bus load 2016-06-20 09:32:40 +02:00
bfin_can.c can: remove obsolete assignment for CAN protocol error type 2015-11-23 09:37:38 +01:00
dev.c can: dev: fix deadlock reported after bus-off 2016-09-22 10:01:21 +02:00
flexcan.c can: flexcan: fix resume function 2016-09-19 16:09:05 +02:00
grcan.c can: grcan: don't touch skb after netif_rx() 2015-07-15 09:04:27 +02:00
janz-ican3.c can: janz-ican3: error handling for CAL/CANopen firmware 2016-05-09 11:07:28 +02:00
Kconfig can: rcar_can: Move Renesas CAN driver to rcar dir 2016-06-17 15:39:48 +02:00
led.c can: add combined rx/tx LED trigger support 2015-03-22 23:50:11 +01:00
Makefile can: rcar_can: Move Renesas CAN driver to rcar dir 2016-06-17 15:39:48 +02:00
pch_can.c can: fix assignment of error location in CAN error messages 2015-11-23 09:37:34 +01:00
slcan.c can: slcan: Replace sizeof struct can_frame with CAN_MTU 2016-06-17 15:39:42 +02:00
sun4i_can.c can: remove obsolete assignment for CAN protocol error type 2015-11-23 09:37:38 +01:00
ti_hecc.c can: remove obsolete assignment for CAN protocol error type 2015-11-23 09:37:38 +01:00
vcan.c can: replace timestamp as unique skb attribute 2015-07-12 21:13:22 +02:00
xilinx_can.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-12-03 21:09:12 -05:00