linux_dsm_epyc7002/drivers/net/can/c_can
Marc Kleine-Budde e35d46adc4 can: c_can: don't call pm_runtime_get_sync() from interrupt context
The c_can driver contians a callpath (c_can_poll -> c_can_state_change ->
c_can_get_berr_counter) which may call pm_runtime_get_sync() from the IRQ
handler, which is not allowed and results in "BUG: scheduling while atomic".

This problem is fixed by introducing __c_can_get_berr_counter, which will not
call pm_runtime_get_sync().

Reported-by: Andrew Glen <AGlen@bepmarine.com>
Tested-by: Andrew Glen <AGlen@bepmarine.com>
Signed-off-by: Andrew Glen <AGlen@bepmarine.com>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2013-11-25 21:48:51 +01:00
..
c_can_pci.c can: c_can: remove unnecessary pci_set_drvdata() 2013-09-21 15:43:15 +02:00
c_can_platform.c net: can: c_can_platform: Remove redundant of_match_ptr 2013-10-01 12:30:25 -04:00
c_can.c can: c_can: don't call pm_runtime_get_sync() from interrupt context 2013-11-25 21:48:51 +01:00
c_can.h can: c_can: Add d_can raminit support 2012-11-27 09:49:31 +01:00
Kconfig can: Kconfig: convert 'depends on CAN_DEV' into 'if CAN_DEV...endif' block 2013-01-26 16:58:58 +01:00
Makefile c_can_pci: generic module for C_CAN/D_CAN on PCI 2012-06-19 21:22:28 +02:00