linux/drivers/net/ethernet
Sergei Shtylyov d2779e9946 sh_eth: fix napi_{en|dis}able() calls racing against interrupts
While implementing NAPI for the driver, I overlooked the race conditions where
interrupt  handler might have called napi_schedule_prep() before napi_enable()
was called or after napi_disable() was called. If RX interrupt happens, this
would cause the endless interrupts and messages like:

sh-eth eth0: ignoring interrupt, status 0x00040000, mask 0x01ff009f.

The interrupt wouldn't even be masked by the kernel eventually since the handler
would return IRQ_HANDLED all the time.

As a fix, move napi_enable() call before request_irq() call and napi_disable()
call after free_irq() call.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-09-04 14:55:34 -04:00
..
3com net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
8390 drivers: net: ethernet: 8390: Kconfig: add H8300H_AKI3068NET and H8300H_H8MAX dependancy for NE_H8300 2013-09-03 22:36:59 -04:00
adaptec net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
adi net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
aeroflex net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
allwinner drivers: net: sun4i-emac: select MDIO_SUN4I 2013-07-26 13:57:58 -07:00
alteon net/ethernet/alteon/acenic: Use module_pci_driver to register driver 2013-05-22 14:35:04 -07:00
amd amd8111e: use pdev->pm_cap instead of pci_find_capability(.., PCI_CAP_ID_PM) 2013-06-19 22:22:56 -07:00
apple net: Restore unintentional reverts. 2013-06-24 12:43:40 -07:00
arc ethernet/arc/arc_emac - fix NAPI "work > weight" warning 2013-08-13 17:00:45 -07:00
atheros atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring 2013-07-30 18:12:07 -07:00
broadcom tg3: Don't turn off led on 5719 serdes port 0 2013-09-03 22:23:40 -04:00
brocade Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
cadence drivers/net/ethernet/cadence: don't use devm_pinctrl_get_select_default() in probe 2013-07-11 17:18:26 -07:00
calxeda net: calxedaxgmac: fix xgmac_xmit DMA mapping error handling 2013-09-03 22:21:16 -04:00
chelsio Revert "cxgb3: Check and handle the dma mapping errors" 2013-08-15 01:23:32 -07:00
cirrus net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
cisco drivers/net: enic: release rtnl_lock on error-path 2013-07-09 12:55:48 -07:00
davicom net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
dec net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
dlink net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
emulex be2net: Check for POST state in suspend-resume sequence 2013-08-26 16:55:26 -04:00
faraday net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
freescale net: fec: fix the error to get the previous BD entry 2013-09-04 14:14:54 -04:00
fujitsu Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
hp
i825xx drivers:net: Remove unnecessary OOM messages after netdev_alloc_skb 2013-03-09 16:09:19 -05:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-07-09 18:24:39 -07:00
icplus net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
intel net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL 2013-08-01 15:11:17 -07:00
marvell skge: dma_sync the whole receive buffer 2013-08-13 15:09:06 -07:00
mellanox net/mlx5_core: Support MANAGE_PAGES and QUERY_PAGES firmware command changes 2013-08-15 15:42:57 -07:00
micrel net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
microchip net: ethernet: enc28j60: use spi_get_drvdata() and spi_set_drvdata() 2013-04-07 16:48:19 -04:00
myricom net/trivial: replace numeric with standard PM state macros 2013-06-28 22:11:48 -07:00
natsemi net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
neterion treewide: Fix typo in printk 2013-06-18 13:48:45 +02:00
nuvoton net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
nvidia net/ethernet/nvidia/forcedeth: Use module_pci_driver to register driver 2013-05-22 14:35:05 -07:00
nxp net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
octeon Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-07-13 14:52:21 -07:00
oki-semi net: pch_gbe depends on x86 2013-07-22 14:43:30 -07:00
packetengines net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
pasemi drivers:net: dma_alloc_coherent: use __GFP_ZERO instead of memset(, 0) 2013-03-17 12:50:24 -04:00
qlogic netxen: lower NAPI weight 2013-08-27 14:59:27 -04:00
rdc net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
realtek r8169: remember WOL preferences on driver load 2013-08-20 16:48:32 -07:00
renesas sh_eth: fix napi_{en|dis}able() calls racing against interrupts 2013-09-04 14:55:34 -04:00
seeq net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
sfc sfc: Fix lookup of default RX MAC filters when steered using ethtool 2013-08-21 14:18:12 +01:00
sgi net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
silan net/ethernet/silan/sc92031: Use module_pci_driver to register driver 2013-05-22 14:35:03 -07:00
sis sis900: Fix the tx queue timeout issue 2013-08-02 15:04:15 -07:00
smsc net: Move MII out from under NET_CORE and hide it 2013-06-19 22:22:56 -07:00
stmicro net: stmmac: fixed the pbl setting with DT 2013-08-28 17:41:49 -04:00
sun sunvnet: vnet_port_remove must call unregister_netdev 2013-07-10 13:35:52 -07:00
tehuti net: vlan: add protocol argument to packet tagging functions 2013-04-19 14:46:06 -04:00
ti net: ethernet: davinci_emac: drop IRQF_DISABLED 2013-08-03 11:53:04 -07:00
tile tile: support new Tilera hypervisor 2013-05-02 16:20:31 -04:00
toshiba ps3_gelic: lower NAPI weight 2013-08-27 14:59:27 -04:00
tundra net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
via drivers/net/ethernet/via/via-velocity.c: update napi implementation 2013-08-15 01:38:34 -07:00
wiznet net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
xilinx net: xilinx: fix memleak 2013-08-28 18:24:31 -04:00
xircom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-05-01 14:08:52 -07:00
xscale net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
dnet.c
dnet.h
ethoc.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
fealnx.c
jme.c jme: lower NAPI weight 2013-08-27 14:59:27 -04:00
jme.h
Kconfig ethernet/arc/arc_emac - Add new driver 2013-06-25 16:34:32 -07:00
korina.c net: Restore unintentional reverts. 2013-06-24 12:43:40 -07:00
lantiq_etop.c lantiq_etop: use free_netdev(netdev) instead of kfree() 2013-03-21 11:50:10 -04:00
Makefile ethernet/arc/arc_emac - Add new driver 2013-06-25 16:34:32 -07:00
netx-eth.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
s6gmac.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00