linux-stable/drivers/net/ethernet/ti
Mugunthan V N af5c6df704 drivers: net: cpsw: irq not disabled in cpsw isr in particular sequence
In CPSW NAPI, after processing all interrupts IRQ is enabled and then book
keeping irq_enabled is updated. In random cases when a packet is transmitted
or received between processing packets and IRQ enabled, then just after
enabled IRQ and before irq_enabled is updated, ISR is called so IRQs are
not disabled as irq_enabled is still false and CPU gets locked in CPSW ISR.

By changing the sequence as update the irq_enabled and then enable IRQ
fixes the issue. This issue is not captured always as it is a timing issue
whether Tx or Rx IRQ is invoked between packet processing and enable IRQ.

Cc: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-05-02 16:52:04 -04:00
..
Kconfig drivers/net/ethernet/ti: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:38:41 -08:00
Makefile cpts: introduce time stamping code and a PTP hardware clock. 2012-11-01 12:21:30 -04:00
cpmac.c net: phy: remove flags argument from phy_{attach, connect, connect_direct} 2013-01-14 15:11:50 -05:00
cpsw.c drivers: net: cpsw: irq not disabled in cpsw isr in particular sequence 2013-05-02 16:52:04 -04:00
cpsw_ale.c drivers: net: cpsw: Add helper functions for VLAN ALE implementation 2013-02-06 15:46:40 -05:00
cpsw_ale.h drivers: net:ethernet: cpsw: add support for VLAN 2013-02-06 15:46:40 -05:00
cpts.c treewide: Fix typos in printk 2013-03-20 16:26:32 +01:00
cpts.h cpts: fix build error by removing useless code. 2012-12-26 14:15:09 -08:00
davinci_cpdma.c net/ti: add MODULE_DEVICE_TABLE + MODULE_LICENSE 2013-04-25 04:12:29 -04:00
davinci_cpdma.h net/davinci_cpdma: remove unused argument in cpdma_chan_submit() 2013-04-25 04:11:50 -04:00
davinci_emac.c net/davinci_cpdma: remove unused argument in cpdma_chan_submit() 2013-04-25 04:11:50 -04:00
davinci_mdio.c net/ti: add MODULE_DEVICE_TABLE + MODULE_LICENSE 2013-04-25 04:12:29 -04:00
tlan.c tlan: cancel work at remove path 2013-04-16 16:43:34 -04:00
tlan.h