linux/drivers/net/can/c_can
Thomas Gleixner ef1d2e286a can: c_can: Make bus off interrupt disable logic work
The state change handler is called with device interrupts disabled
already. So no point in disabling them again when we enter bus off
state.

But what's worse is that we reenable the interrupts at the end of NAPI
poll unconditionally. So c_can_start() which is called from the
restart timer can trigger interrupts which confuse the hell out of the
half reinitialized driver/hw.

Remove the pointless device interrupt disable in the BUS_OFF handler
and prevent reenabling the device interrupts at the end of the poll
routine when the current state is BUS_OFF.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2014-04-24 22:08:55 +02:00
..
c_can_pci.c can: c_can_pci: Set the type of the IP core 2014-04-24 22:08:55 +02:00
c_can_platform.c can: c_can: Fix hardware raminit function 2014-04-01 11:54:57 +02:00
c_can.c can: c_can: Make bus off interrupt disable logic work 2014-04-24 22:08:55 +02:00
c_can.h can: c_can: Store dlc private 2014-04-01 11:55:01 +02: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