diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2013-11-24 23:31:24 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-12-11 22:37:53 -0800 |
commit | a472bacfa164f336da006fcd879d785f2b30b7bc (patch) | |
tree | 27c4e50267a7dd26abbcf3a3b0d6f4bad811faad /include | |
parent | 617bf5aceea95873945f5d57fe114e1599cb6dc0 (diff) |
can: c_can: don't call pm_runtime_get_sync() from interrupt context
commit e35d46adc49b469fd92bdb64fea8af93640e6651 upstream.
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>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions