linux_dsm_epyc7002/drivers/net
Bruce Allan 5f4a780ddd e1000e: hitting BUG_ON() from napi_enable
Based on a patch from Mike McElroy created against the out-of-tree e1000e
driver:

Hitting the BUG_ON in napi_enable(). Code inspection shows that this can
only be triggered by calling napi_enable() twice without an intervening
napi_disable().

I saw the following sequence of events in the stack trace:

1) We simulated a cable pull using an Extreme switch.
2) e1000_tx_timeout() was entered.
3) e1000_reset_task() was called. Saw the message from e_err() in the
console log.
4) e1000_reinit_locked was called. This function calls e1000_down() and
e1000_up(). These functions call napi_disable() and napi_enable()
respectively.
5) Then on another thread, a monitor task saw carrier was down and executed
'ip set link down' and 'ip set link up' commands.
6) Saw the '_E1000_RESETTING'warning fron the e1000_close function.
7) Either the e1000_open() executed between the e1000_down() and e1000_up()
calls in step 4 or the e1000_open() call executed after the e1000_up()
call.  In either case, napi_enable() is called twice which triggers the
BUG_ON.

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Cc: Mike McElroy <mike.mcelroy@stratus.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2011-12-05 00:12:22 -08:00
..
appletalk
arcnet net: Revert ARCNET and PHYLIB to tristate options 2011-11-26 14:36:49 -05:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
caif caif-hsi: Added recovery check of CA wake status. 2011-10-19 03:25:43 -04:00
can can: cc770: add platform bus driver for the CC770 and AN82527 2011-12-01 13:09:31 -05:00
cris
dsa dsa: Move switch drivers to new directory drivers/net/dsa 2011-11-29 00:21:36 -05:00
ethernet e1000e: hitting BUG_ON() from napi_enable 2011-12-05 00:12:22 -08:00
fddi
hamradio
hippi net: drivers/net/hippi/Kconfig should be sourced 2011-11-09 15:55:06 -05:00
irda net/irda: convert drivers/net/irda/* to use module_platform_driver() 2011-11-27 20:29:11 -05:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-11-26 14:47:03 -05:00
plip
ppp net: treewide use of RCU_INIT_POINTER 2011-11-23 18:48:19 -05:00
slip
team net: treewide use of RCU_INIT_POINTER 2011-11-23 18:48:19 -05:00
tokenring
usb net: remove netdev_alloc_page and use __GFP_COLD 2011-11-22 16:43:32 -05:00
vmxnet3 Sweep away N/A fw_version dustbunnies from the .get_drvinfo routine of a number of drivers 2011-11-22 16:43:32 -05:00
wan
wimax drivers/net: Add moduleparam.h to drivers as required. 2011-10-31 19:31:09 -04:00
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-11-26 14:47:03 -05:00
dummy.c net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
eql.c
ifb.c net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
Kconfig dsa: Move switch drivers to new directory drivers/net/dsa 2011-11-29 00:21:36 -05:00
LICENSE.SRC
loopback.c net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
macvlan.c macvlan: receive multicast with local address 2011-11-04 17:39:32 -04:00
macvtap.c net: treewide use of RCU_INIT_POINTER 2011-11-23 18:48:19 -05:00
Makefile dsa: Move switch drivers to new directory drivers/net/dsa 2011-11-29 00:21:36 -05:00
mdio.c
mii.c net: Change mii to ethtool advertisement function names 2011-11-21 15:27:19 -05:00
netconsole.c netconsole: enable netconsole can make net_device refcnt incorrent 2011-10-18 23:55:29 -04:00
rionet.c drivers/net/rionet.c: fix ethernet address macros for LE platforms 2011-11-02 16:07:01 -07:00
sb1000.c
Space.c
sungem_phy.c
tun.c Sweep away N/A fw_version dustbunnies from the .get_drvinfo routine of a number of drivers 2011-11-22 16:43:32 -05:00
veth.c Sweep away N/A fw_version dustbunnies from the .get_drvinfo routine of a number of drivers 2011-11-22 16:43:32 -05:00
virtio_net.c virtio_net: return already tracked tx_fifo_errors via virtnet_getstats() 2011-11-26 16:00:12 -05:00
xen-netfront.c net: drivers: use bool type instead of double negation 2011-11-16 23:12:20 -05:00