linux/drivers/net/can
AnilKumar Ch f461f27a44 can: c_can: fix race condition in c_can_open()
Fix the issue of C_CAN interrupts getting disabled forever when canconfig
utility is used multiple times. According to NAPI usage we disable all
the hardware interrupts in ISR and re-enable them in poll(). Current
implementation calls napi_enable() after hardware interrupts are enabled.
If we get any interrupts between these two steps then we do not process
those interrupts because napi is not enabled. Mostly these interrupts
come because of STATUS is not 0x7 or ERROR interrupts. If napi_enable()
happens before HW interrupts enabled then c_can_poll() function will be
called eventual re-enabling.

This patch moves the napi_enable() call before interrupts enabled.

Cc: stable@kernel.org # 2.6.39+
Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2012-06-03 18:59:20 +02:00
..
c_can can: c_can: fix race condition in c_can_open() 2012-06-03 18:59:20 +02:00
cc770 can: cc770: linux/can/dev.h included twice 2012-03-03 17:40:32 +01:00
mscan can: replace the dev_dbg/info/err/... with the new netdev_xxx macros 2012-02-03 01:21:26 +01:00
sja1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
softing net/can: convert drivers/net/can/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
usb can: usb: PCAN-USB Pro: fix mem leaks in pcan_usb_pro_init() on error paths 2012-04-16 21:34:50 +02:00
at91_can.c net/can: convert drivers/net/can/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
bfin_can.c can: replace the dev_dbg/info/err/... with the new netdev_xxx macros 2012-02-03 01:21:26 +01:00
dev.c can: Stop using NLA_PUT*(). 2012-04-02 04:33:42 -04:00
flexcan.c can: flexcan: adopt pinctrl support 2012-05-12 09:43:09 +08:00
janz-ican3.c net/can: convert drivers/net/can/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
Kconfig can: Kconfig: add more information about Intel EG20T PCH CAN controller 2012-02-03 01:21:26 +01:00
Makefile can: cc770: add driver core for the Bosch CC770 and Intel AN82527 2011-12-01 13:09:31 -05:00
mcp251x.c can: replace the dev_dbg/info/err/... with the new netdev_xxx macros 2012-02-03 01:21:26 +01:00
pch_can.c net/can: use module_pci_driver 2012-04-16 21:08:18 +02:00
slcan.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ti_hecc.c Merge branch 'master' of git://gitorious.org/linux-can/linux-can-next 2012-02-04 16:42:19 -05:00
vcan.c module_param: make bool parameters really bool (net & drivers/net) 2011-12-19 22:27:29 -05:00