linux_dsm_epyc7002/drivers/net/ethernet
Yi Zou 9d837ea2b7 ixgbe: do not update real num queues when netdev is going away
If the netdev is already in NETREG_UNREGISTERING/_UNREGISTERED state, do not
update the real num tx queues. netdev_queue_update_kobjects() is already
called via remove_queue_kobjects() at NETREG_UNREGISTERING time. So, when
upper layer driver, e.g., FCoE protocol stack is monitoring the netdev
event of NETDEV_UNREGISTER and calls back to LLD ndo_fcoe_disable() to remove
extra queues allocated for FCoE, the associated txq sysfs kobjects are already
removed, and trying to update the real num queues would cause something like
below:

...
PID: 25138  TASK: ffff88021e64c440  CPU: 3   COMMAND: "kworker/3:3"
 #0 [ffff88021f007760] machine_kexec at ffffffff810226d9
 #1 [ffff88021f0077d0] crash_kexec at ffffffff81089d2d
 #2 [ffff88021f0078a0] oops_end at ffffffff813bca78
 #3 [ffff88021f0078d0] no_context at ffffffff81029e72
 #4 [ffff88021f007920] __bad_area_nosemaphore at ffffffff8102a155
 #5 [ffff88021f0079f0] bad_area_nosemaphore at ffffffff8102a23e
 #6 [ffff88021f007a00] do_page_fault at ffffffff813bf32e
 #7 [ffff88021f007b10] page_fault at ffffffff813bc045
    [exception RIP: sysfs_find_dirent+17]
    RIP: ffffffff81178611  RSP: ffff88021f007bc0  RFLAGS: 00010246
    RAX: ffff88021e64c440  RBX: ffffffff8156cc63  RCX: 0000000000000004
    RDX: ffffffff8156cc63  RSI: 0000000000000000  RDI: 0000000000000000
    RBP: ffff88021f007be0   R8: 0000000000000004   R9: 0000000000000008
    R10: ffffffff816fed00  R11: 0000000000000004  R12: 0000000000000000
    R13: ffffffff8156cc63  R14: 0000000000000000  R15: ffff8802222a0000
    ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
 #8 [ffff88021f007be8] sysfs_get_dirent at ffffffff81178c07
 #9 [ffff88021f007c18] sysfs_remove_group at ffffffff8117ac27
#10 [ffff88021f007c48] netdev_queue_update_kobjects at ffffffff813178f9
#11 [ffff88021f007c88] netif_set_real_num_tx_queues at ffffffff81303e38
#12 [ffff88021f007cc8] ixgbe_set_num_queues at ffffffffa0249763 [ixgbe]
#13 [ffff88021f007cf8] ixgbe_init_interrupt_scheme at ffffffffa024ea89 [ixgbe]
#14 [ffff88021f007d48] ixgbe_fcoe_disable at ffffffffa0267113 [ixgbe]
#15 [ffff88021f007d68] vlan_dev_fcoe_disable at ffffffffa014fef5 [8021q]
#16 [ffff88021f007d78] fcoe_interface_cleanup at ffffffffa02b7dfd [fcoe]
#17 [ffff88021f007df8] fcoe_destroy_work at ffffffffa02b7f08 [fcoe]
#18 [ffff88021f007e18] process_one_work at ffffffff8105d7ca
#19 [ffff88021f007e68] worker_thread at ffffffff81060513
#20 [ffff88021f007ee8] kthread at ffffffff810648b6
#21 [ffff88021f007f48] kernel_thread_helper at ffffffff813c40f4

Signed-off-by: Yi Zou <yi.zou@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2012-02-09 01:26:52 -08:00
..
3com
8390 ax88796: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
adaptec net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
adi bfin_mac: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
aeroflex net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
alteon
amd au1000-eth: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
apple
atheros 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
broadcom bnx2x: Fix mem leak in bnx2x_tpa_stop() if build_skb() fails. 2012-02-07 13:13:33 -05:00
brocade bna: fix sparse warnings/errors 2012-01-05 13:23:00 -05:00
cadence macb: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
calxeda xgmac: cleanups 2012-01-05 13:23:00 -05:00
chelsio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
cirrus
cisco enic: fix compile when CONFIG_PCI_IOV is not enabled 2012-01-20 13:39:20 -05:00
davicom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
dec net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
dlink module_param: make bool parameters really bool (net & drivers/net) 2011-12-19 22:27:29 -05:00
emulex ethtool: Null-terminate filename passed to ethtool_ops::flash_device 2012-02-01 14:47:17 -05:00
faraday net: ftgmac100/ftmac100: add missing interrupt.h include 2012-01-18 21:01:11 -05:00
freescale net: fec: correct phy_name buffer length when init phy_name 2012-01-31 16:17:25 -05:00
fujitsu
hp
i825xx
ibm ehea: make some functions and variables static 2012-01-17 10:04:43 -05:00
icplus icplus: mdio_write(), remove unnecessary for loop 2011-12-01 12:54:46 -05:00
intel ixgbe: do not update real num queues when netdev is going away 2012-02-09 01:26:52 -08:00
marvell Revert "skge: check for PCI dma mapping errors" 2012-02-07 12:51:10 -05:00
mellanox mlx4: fix DMA mapping leak when allocation fails 2012-02-06 14:42:28 -05:00
micrel Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
microchip
myricom myri10ge: Fix typo of 'VMware' in comment. 2011-12-19 15:44:43 -05:00
natsemi Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-01-06 18:28:12 -08:00
neterion net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
nuvoton net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
nvidia forcedeath: Fix bql support for forcedeath 2011-12-02 12:39:12 -05:00
octeon
oki-semi pch_gbe: Do not abort probe on bad MAC 2012-01-18 16:41:36 -05:00
packetengines
pasemi pasemi_mac: Fix building as module 2011-12-06 00:48:59 -05:00
qlogic net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
racal
rdc r6040: fix typo in use of MCR0 register bits 2012-01-07 12:09:36 -08:00
realtek 8139cp: fix missing napi_gro_flush. 2012-01-08 19:20:33 -08:00
renesas net: sh_eth: fix skb_over_panic happen 2012-02-07 13:37:30 -05:00
seeq net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
sfc sfc: Remove now-unused filter function 2012-01-04 14:10:23 -05:00
sgi net: meth: Add set_rx_mode hook to fix ICMPv6 neighbor discovery 2011-12-27 13:17:34 -05:00
silan
sis Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
smsc smsc911x: use an unique MDIO bus name. 2012-01-10 16:35:01 -08:00
stmicro stmmac: added PCI identifiers 2012-01-24 15:44:20 -05:00
sun sunhme/PCI: use list_for_each_entry() for bus->devices traversal 2011-12-19 16:13:36 -05:00
tehuti net: make vlan ndo_vlan_rx_[add/kill]_vid return error value 2011-12-08 19:52:37 -05:00
ti drivers/net/ethernet/ti: Move call to PTR_ERR after reassignment 2012-02-02 14:35:12 -05:00
tile netdev: make net_device_ops const 2012-01-09 14:05:23 -08:00
toshiba net: enable TC35815 for MIPS again 2012-02-07 13:40:44 -05:00
tundra drivers/net/ethernet/tundra/tsi108_eth.c: add missing iounmap 2012-01-12 20:05:28 -08:00
via via-velocity: S3 resume fix. 2012-02-05 17:47:09 -05:00
xilinx net: ethernet: xilinx: Don't use NO_IRQ in xilinx 2011-12-21 15:42:50 -05:00
xircom
xscale ixp4xx-eth: use an unique MDIO bus name. 2012-01-10 16:35:01 -08:00
dnet.c dnet: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
dnet.h
ethoc.c net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
fealnx.c
jme.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2011-12-02 13:49:21 -05:00
jme.h jme: PHY configuration for compatible issue 2011-11-27 19:21:09 -05:00
Kconfig net: add calxeda xgmac ethernet driver 2011-11-29 01:15:24 -05:00
korina.c net/ethernet: convert drivers/net/ethernet/* to use module_platform_driver() 2011-11-29 00:25:05 -05:00
lantiq_etop.c lantiq_etop: use an unique MDIO bus name. 2012-01-10 16:35:00 -08:00
Makefile Driver specific changes 2012-01-09 14:39:22 -08:00
mipsnet.c
netx-eth.c
s6gmac.c s6gmac: use an unique MDIO bus name. 2012-01-10 16:35:01 -08:00