linux/drivers/net/can
Sergei Miroshnichenko 5e5920acff can: dev: fix deadlock reported after bus-off
[ Upstream commit 9abefcb1aa ]

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>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
History 2016-12-23 09:41:16 -05:00
..
c_can can: c_can: Update D_CAN TX and RX functions to 32 bit - fix Altera Cyclone access 2016-07-12 08:46:55 -04:00
cc770 net: can: use kbuild magic to inherit debug settings 2014-08-18 01:03:38 +02:00
m_can can: fix handling of unmodifiable configuration options 2016-06-03 11:30:37 -04:00
mscan net: can: use kbuild magic to inherit debug settings 2014-08-18 01:03:38 +02:00
sja1000 can: remove unused variable 2014-11-18 16:52:18 +01:00
softing net: can: use kbuild magic to inherit debug settings 2014-08-18 01:03:38 +02:00
spi can: mcp251x: Use dmam_alloc_coherent 2014-08-18 01:03:43 +02:00
usb can: gs_usb: fixed disconnect bug by removing erroneous use of kfree() 2016-03-20 22:14:25 -04:00
at91_can.c can: at91_can: RX queue could get stuck at high bus load 2016-07-12 08:46:56 -04:00
bfin_can.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
dev.c can: dev: fix deadlock reported after bus-off 2016-12-23 09:41:16 -05:00
flexcan.c can: flexcan: fix resume function 2016-10-05 22:40:20 -04:00
grcan.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
janz-ican3.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
Kconfig drivers/net/can/Kconfig: Let CAN_AT91 depend on HAS_IOMEM 2014-10-03 15:52:03 -07:00
led.c can: only rename enabled led triggers when changing the netdev name 2014-05-27 15:05:41 +02:00
Makefile can: m_can: add Bosch M_CAN controller support 2014-08-18 01:03:41 +02:00
pch_can.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
rcar_can.c can: rcar_can: add .ndo_change_mtu function 2014-11-18 17:52:08 +01:00
slcan.c Revert "can: fix loss of CAN frames in raw_rcv" 2015-08-04 13:32:39 -04:00
ti_hecc.c can: Unify MTU settings for CAN interfaces 2014-03-17 09:20:16 +01:00
vcan.c Revert "can: fix loss of CAN frames in raw_rcv" 2015-08-04 13:32:39 -04:00
xilinx_can.c can: xilinx_can: add .ndo_change_mtu function 2014-11-18 17:52:08 +01:00