linux/drivers/net
AnilKumar Ch d8bf1e7c76 can: c_can: fix race condition in c_can_open()
commit f461f27a44 upstream.

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.

Signed-off-by: AnilKumar Ch <anilkumar@ti.com>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-17 11:21:28 -07:00
..
appletalk Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
arcnet arcnet: rimi: Fix device name in debug output 2012-04-17 22:22:43 -04:00
bonding bonding: Fix LACPDU rx_dropped commit. 2012-05-13 15:45:13 -04:00
caif caif_hsi: use dev_dbg not dev_err for reporting 2012-04-13 11:01:44 -04:00
can can: c_can: fix race condition in c_can_open() 2012-06-17 11:21:28 -07:00
cris Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
dsa
ethernet fec_mpc52xx: fix timestamp filtering 2012-06-10 00:36:12 +09:00
fddi
hamradio Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hippi Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
hyperv net/hyperv: Adding cancellation to ensure rndis filter is closed 2012-04-21 15:38:10 -04:00
irda ARM: sa11x0: fix build errors from DMA engine API updates 2012-03-30 11:46:20 +01:00
phy icplus: fix interrupt for IC+ 101A/G and 1001LF 2012-04-19 15:34:18 -04:00
plip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ppp ppp: Fix race condition with queue start/stop 2012-04-13 13:06:47 -04:00
slip Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
team net: use eth_hw_addr_random() and reset addr_assign_type 2012-02-15 15:34:17 -05:00
tokenring Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
usb net: sierra_net: device IDs for Aircard 320U++ 2012-06-17 11:21:27 -07:00
vmxnet3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-03-05 21:16:26 -05:00
wan drivers/net/wan/farsync.c: add missing iounmap 2012-04-17 22:31:59 -04:00
wimax Merge branch 'akpm' (Andrew's patch-bomb) 2012-04-05 15:30:34 -07:00
wireless wireless: rt2x00: rt2800usb more devices were identified 2012-06-17 11:21:27 -07:00
xen-netback
dummy.c dummy: Add ndo_uninit(). 2012-04-16 23:56:36 -04:00
eql.c eql: dont rely on HZ=100 2012-03-27 22:45:26 -04:00
ifb.c net: replace random_ether_addr() with eth_hw_addr_random() 2012-02-15 15:34:16 -05:00
Kconfig
LICENSE.SRC
loopback.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
macvlan.c Revert "net: maintain namespace isolation between vlan and real device" 2012-05-10 23:03:34 -04:00
macvtap.c macvtap: restore vlan header on user read 2012-05-11 18:16:57 -04:00
Makefile
mdio.c ethtool, mdio, mii: Specify MDIO information fields in struct ethtool_cmd 2012-03-01 16:41:26 -05:00
mii.c ethtool, mdio, mii: Specify MDIO information fields in struct ethtool_cmd 2012-03-01 16:41:26 -05:00
netconsole.c
rionet.c rionet: fix page allocation order of rionet_active 2012-04-01 23:17:16 -04:00
sb1000.c
Space.c
sungem_phy.c
tun.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
veth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-02-19 16:03:15 -05:00
virtio_net.c virtio_net: invoke softirqs after __napi_schedule 2012-05-17 12:16:38 +03:00
xen-netfront.c Two fixes for regressions: 2012-04-06 17:54:53 -07:00