linux_dsm_epyc7002/drivers/net/ethernet
Shota Suzuki 72ddef0506 igb: Fix oops caused by missing queue pairing
When initializing igb driver (e.g. 82576, I350), IGB_FLAG_QUEUE_PAIRS is
set if adapter->rss_queues exceeds half of max_rss_queues in
igb_init_queue_configuration().
On the other hand, IGB_FLAG_QUEUE_PAIRS is not set even if the number of
queues exceeds half of max_combined in igb_set_channels() when changing
the number of queues by "ethtool -L".
In this case, if numvecs is larger than MAX_MSIX_ENTRIES (10), the size
of adapter->msix_entries[], an overflow can occur in
igb_set_interrupt_capability(), which in turn leads to an oops.

Fix this problem as follows:
 - When changing the number of queues by "ethtool -L", set
   IGB_FLAG_QUEUE_PAIRS in the same way as initializing igb driver.
 - When increasing the size of q_vector, reallocate it appropriately.
   (With IGB_FLAG_QUEUE_PAIRS set, the size of q_vector gets larger.)

Another possible way to fix this problem is to cap the queues at its
initial number, which is the number of the initial online cpus. But this
is not the optimal way because we cannot increase queues when another
cpu becomes online.

Note that before commit cd14ef54d2 ("igb: Change to use statically
allocated array for MSIx entries"), this problem did not cause oops
but just made the number of queues become 1 because of entering msi_only
mode in igb_set_interrupt_capability().

Fixes: 907b783579 ("igb: Add ethtool support to configure number of channels")
CC: stable <stable@vger.kernel.org>
Signed-off-by: Shota Suzuki <suzuki_shota_t3@lab.ntt.co.jp>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2015-08-18 14:06:03 -07:00
..
3com 3c59x: Fix resource leaks in vortex_open 2015-08-03 15:21:33 -07:00
8390 drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
adaptec drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
adi drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
aeroflex net: greth: constify of_device_id array 2015-03-17 15:00:22 -04:00
agere drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
allwinner drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
alteon drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
altera net: eth: altera: Remove sgdmadesclen member from altera_tse_private 2015-08-12 14:31:07 -07:00
amd amd-xgbe: Fix DMA API debug warning 2015-07-08 15:57:14 -07:00
apm drivers: net: xgene: Pre-initialize ret in xgene_enet_get_resources() 2015-06-28 16:54:32 -07:00
apple drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
arc drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
atheros net: atl1c: add BQL support 2015-08-12 16:27:40 -07:00
broadcom bnx2: Fix bandwidth allocation for some MF modes 2015-08-17 10:27:57 -07:00
brocade bna: fix interrupts storm caused by erroneous packets 2015-08-10 10:58:37 -07:00
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-07-31 23:52:20 -07:00
calxeda ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-13 16:23:11 -07:00
chelsio cxgb4: Add MPS tracing support 2015-08-13 21:14:48 -07:00
cirrus drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
cisco enic: Fix sparse warning in vnic_devcmd_init(). 2015-08-17 21:24:59 -07:00
davicom
dec drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
dlink drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
emulex Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-13 16:23:11 -07:00
ezchip NET: Add ezchip ethernet driver 2015-06-23 07:16:25 -07:00
faraday drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-13 16:23:11 -07:00
fujitsu drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
hisilicon net: Drop owner assignment from platform_driver 2015-07-10 23:18:29 -07:00
hp drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
i825xx drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
ibm ibmveth: add support for TSO6 2015-07-15 21:34:56 -07:00
icplus net: icplus: fix typo in constant name 2015-06-29 15:57:50 -07:00
intel igb: Fix oops caused by missing queue pairing 2015-08-18 14:06:03 -07:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-13 16:23:11 -07:00
mellanox mlx5e: Fix sparse warnings in mlx5e_handle_csum(). 2015-08-17 21:22:26 -07:00
micrel drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
microchip drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
moxa drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
myricom Minor merge needed, due to function move. 2015-07-01 10:49:25 -07:00
natsemi drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
neterion neterion: s2io: Use module_pci_driver 2015-07-09 00:19:00 -07:00
nuvoton drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
nvidia drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
nxp
octeon netdev: octeon_mgmt: constify of_device_id array 2015-03-17 15:00:22 -04:00
oki-semi drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
packetengines drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
pasemi drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
qlogic qlcnic: Update version to 5.3.63 2015-08-10 13:34:29 -07:00
qualcomm drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
rdc drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
realtek r8169: enforce RX_MULTI_EN on rtl8168ep/8111ep chips 2015-08-07 00:00:10 -07:00
renesas ravb: minimize TX data copying 2015-07-27 01:22:38 -07:00
rocker rocker: hook ndo_neigh_destroy to cleanup neigh refs in driver 2015-08-13 17:05:46 -07:00
samsung ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
seeq drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
sfc sfc: MC allocations must be restored following an entity reset 2015-07-31 15:32:05 -07:00
sgi drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
silan drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
sis sis900: Trivial: Fix typos in enums 2015-06-29 12:52:06 -07:00
smsc smsc911x: Fix crash seen if neither ACPI nor OF is configured or used 2015-08-17 14:06:16 -07:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-08-13 16:23:11 -07:00
sun niu: don't count tx error twice in case of headroom realloc fails 2015-07-26 21:17:54 -07:00
synopsys dwc_eth_qos: Add support for Synopsys DWC Ethernet QoS 2015-07-28 23:55:00 -07:00
tehuti drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
ti drivers: net: cpsw: add am335x errata workarround for interrutps 2015-08-13 16:51:00 -07:00
tile net: batch of last_rx update avoidance in ethernet drivers. 2015-05-14 17:38:17 -04:00
toshiba drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
tundra drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
via net: via: VIA_RHINE and VIA_VELOCITY should depend on HAS_DMA 2015-06-28 20:20:55 -07:00
wiznet drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
xilinx net: axienet: Fix devm_ioremap_resource return value check 2015-07-09 21:43:16 -07:00
xircom drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
xscale drivers/net: remove all references to obsolete Ethernet-HOWTO 2015-06-23 06:50:35 -07:00
dnet.c
dnet.h
ec_bhf.c net: ec_bhf: Use module_pci_driver 2015-07-08 16:04:06 -07:00
ethoc.c net: ethoc: constify of_device_id array 2015-03-17 15:00:21 -04:00
fealnx.c
jme.c
jme.h
Kconfig dwc_eth_qos: Add the synopsys folder to the build system. 2015-07-28 23:55:00 -07:00
korina.c
lantiq_etop.c
Makefile dwc_eth_qos: Add the synopsys folder to the build system. 2015-07-28 23:55:00 -07:00
netx-eth.c