1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/ethernet
Anatolii Gerasymenko ccfee18220 ice: Set txq_teid to ICE_INVAL_TEID on ring creation
When VF is freshly created, but not brought up, ring->txq_teid
value is by default set to 0.
But 0 is a valid TEID. On some platforms the Root Node of
Tx scheduler has a TEID = 0. This can cause issues as shown below.

The proper way is to set ring->txq_teid to ICE_INVAL_TEID (0xFFFFFFFF).

Testing Hints:
echo 1 > /sys/class/net/ens785f0/device/sriov_numvfs
ip link set dev ens785f0v0 up
ip link set dev ens785f0v0 down

If we have freshly created VF and quickly turn it on and off, so there
would be no time to reach VIRTCHNL_OP_CONFIG_VSI_QUEUES stage, then
VIRTCHNL_OP_DISABLE_QUEUES stage will fail with error:
[  639.531454] disable queue 89 failed 14
[  639.532233] Failed to disable LAN Tx queues, error: ICE_ERR_AQ_ERROR
[  639.533107] ice 0000:02:00.0: Failed to stop Tx ring 0 on VSI 5

The reason for the fail is that we are trying to send AQ command to
delete queue 89, which has never been created and receive an "invalid
argument" error from firmware.

As this queue has never been created, it's teid and ring->txq_teid
have default value 0.
ice_dis_vsi_txq has a check against non-existent queues:

node = ice_sched_find_node_by_teid(pi->root, q_teids[i]);
if (!node)
	continue;

But on some platforms the Root Node of Tx scheduler has a teid = 0.
Hence, ice_sched_find_node_by_teid finds a node with teid = 0 (it is
pi->root), and we go further to submit an erroneous request to firmware.

Fixes: 37bb839012 ("ice: Move common functions out of ice_main.c part 7/7")
Signed-off-by: Anatolii Gerasymenko <anatolii.gerasymenko@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: Konrad Jankowski <konrad0.jankowski@intel.com>
Signed-off-by: Alice Michael <alice.michael@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2022-04-05 12:50:25 +02:00
..
3com net: typhoon: include <net/vxlan.h> 2022-02-07 19:53:38 -08:00
8390 ethernet: 8390: Remove unnecessary print function dev_err() 2022-03-11 22:59:03 -08:00
actions
adaptec
aeroflex
agere et131x: support arbitrary MAX_SKB_FRAGS 2022-02-08 16:51:23 -08:00
alacritech
allwinner net: ethernet: sun4i-emac: Fix an error handling path in emac_probe() 2022-01-15 22:34:52 +00:00
alteon net: alteon: Simplify DMA setting 2022-01-09 16:52:18 -08:00
altera net: ethernet: altera: cleanup comments 2022-02-16 20:33:04 -08:00
amazon net: ena: Do not waste napi skb cache 2022-01-31 21:36:21 -08:00
amd net: amd-xgbe: disable interrupts during pci removal 2022-02-09 12:52:59 +00:00
apm drivers: net: xgene: Fix regression in CRC stripping 2022-03-23 10:30:05 -07:00
apple net: apple: bmac: Fix build since dev_addr constification 2022-01-14 11:22:57 +00:00
aquantia net: atlantic: Use the bitmap API instead of hand-writing it 2022-01-24 12:57:01 +00:00
arc net: arc_emac: Fix use after free in arc_mdio_probe() 2022-03-10 14:49:21 -08:00
asix net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
atheros atl1c: remove redundant assignment to variable size 2022-03-18 14:16:47 -07:00
broadcom bnxt_en: Prevent XDP redirect from running when stopping TX queue 2022-04-04 12:44:50 +01:00
brocade bna: Simplify DMA setting 2022-01-09 16:52:18 -08:00
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-10 17:16:56 -08:00
calxeda
cavium Revert "net: ethernet: cavium: use div64_u64() instead of do_div()" 2022-02-11 16:54:47 -08:00
chelsio net: cxgb3: Fix an error code when probing the driver 2022-03-07 22:18:52 -08:00
cirrus
cisco Updates for the interrupt subsystem: 2022-01-13 08:53:45 -08:00
cortina net: ethernet: cortina: permit to set mac address in DT 2022-01-26 18:43:50 -08:00
davicom net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
dec net: tulip: remove redundant assignment to variable new_csr6 2022-01-25 07:40:44 -08:00
dlink net: sundance: Replace one-element array with non-array object 2022-02-05 15:30:32 +00:00
emulex Updates for the interrupt subsystem: 2022-01-13 08:53:45 -08:00
engleder
ezchip net: ethernet: ezchip: fix platform_get_irq.cocci warning 2022-03-11 11:07:23 +00:00
faraday asm-generic updates for 5.18 2022-03-23 18:03:08 -07:00
freescale dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe 2022-04-05 12:38:11 +02:00
fujitsu
fungible net/fungible: Fix reference to __udivdi3 on 32b builds 2022-04-01 21:32:30 -07:00
google gve: Fix spelling mistake "droping" -> "dropping" 2022-03-16 19:29:00 -07:00
hisilicon net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware 2022-03-31 11:39:59 +02:00
huawei Updates for the interrupt subsystem: 2022-01-13 08:53:45 -08:00
i825xx Networking changes for 5.18. 2022-03-24 13:13:26 -07:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-23 10:53:49 -07:00
intel ice: Set txq_teid to ICE_INVAL_TEID on ring creation 2022-04-05 12:50:25 +02:00
litex net: ethernet: litex: Add the dependency on HAS_IOMEM 2022-02-08 20:43:40 -08:00
marvell octeontx2-af: initialize action variable 2022-03-26 14:14:04 -07:00
mediatek net: ethernet: mtk_star_emac: fix unused variable 2022-01-27 13:47:34 +00:00
mellanox Networking changes for 5.18. 2022-03-24 13:13:26 -07:00
micrel net: micrel: fix KS8851_MLL Kconfig 2022-04-01 12:06:29 +01:00
microchip net: sparx5: uses, depends on BRIDGE or !BRIDGE 2022-03-30 19:16:27 -07:00
microsoft net: mana: Remove unnecessary check of cqe_type in mana_process_rx_cqe() 2022-02-05 15:26:00 +00:00
moxa net: moxa: use GFP_KERNEL 2022-02-11 14:39:08 -08:00
mscc net: mscc: ocelot: offload per-flow mirroring using tc-mirred and VCAP IS2 2022-03-17 17:42:47 -07:00
myricom myri10ge: Simplify DMA setting 2022-01-09 16:52:18 -08:00
natsemi
neterion net: vxge: Use dma_set_mask_and_coherent() and simplify code 2022-01-03 10:42:58 +00:00
netronome devlink: hold the instance lock during eswitch_mode callbacks 2022-03-21 14:11:38 +00:00
ni net: nixge: Use GFP_KERNEL instead of GFP_ATOMIC when possible 2022-02-17 20:03:39 -08:00
nvidia
nxp net: ethernet: lpc_eth: Handle error for clk_enable 2022-03-09 12:15:20 +00:00
oki-semi
packetengines drivers: net: packetengines: fix typos in comments 2022-03-14 10:04:28 -07:00
pasemi
pensando ionic: no transition while stopping 2022-02-28 11:42:45 +00:00
qlogic qed: fix ethtool register dump 2022-04-04 12:42:52 +01:00
qualcomm net: add per-cpu storage and net->core_stats 2022-03-11 23:17:24 -08:00
rdc
realtek r8169: improve driver unload and system shutdown behavior on DASH-enabled systems 2022-03-17 16:47:32 -07:00
renesas ravb: Use GFP_KERNEL instead of GFP_ATOMIC when possible 2022-02-21 12:00:46 +00:00
rocker Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-01-09 17:00:17 -08:00
samsung Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-03 11:55:12 -08:00
seeq ethernet: seeq/ether3: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
sfc sfc: Do not free an empty page_ring 2022-04-04 12:53:52 +01:00
sgi
silan
sis
smsc ethernet: smc911x: fix indentation in get/set EEPROM 2022-02-01 19:59:03 -08:00
socionext net: netsec: enable pp skb recycling 2022-02-28 11:39:23 +00:00
stmicro stmmac: dwmac-loongson: change loongson_dwmac_driver from global to static 2022-04-04 12:47:54 +01:00
sun ethernet: sun: Fix spelling mistake "mis-matched" -> "mismatched" 2022-03-17 16:36:05 -07:00
synopsys
tehuti tehuti: Use dma_set_mask_and_coherent() and simplify code 2022-01-02 12:21:16 +00:00
ti Networking changes for 5.18. 2022-03-24 13:13:26 -07:00
toshiba
tundra ethernet: tundra: don't write directly to netdev->dev_addr 2022-01-26 15:40:01 +00:00
vertexcom net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
via
wiznet net: ethernet: Use netif_rx(). 2022-03-04 12:02:19 +00:00
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-03-10 17:16:56 -08:00
xircom
xscale ARM: ixp4xx: Drop all common code 2022-02-12 18:20:04 +01:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c net: ethernet: use time_is_before_eq_jiffies() instead of open coding it 2022-02-28 13:21:31 +00:00
jme.h
Kconfig net/fungible: Kconfig, Makefiles, and MAINTAINERS 2022-02-27 10:51:23 +00:00
korina.c
lantiq_etop.c net: lantiq_etop: remove unnecessary space in cast 2021-12-30 13:20:23 +00:00
lantiq_xrx200.c net: lantiq_xrx200: fix use after free bug 2022-03-07 11:29:35 +00:00
Makefile net/fungible: Kconfig, Makefiles, and MAINTAINERS 2022-02-27 10:51:23 +00:00