linux/drivers/net
Chenguang Zhao 229cc10284 net/mlx5: Fix variable not being completed when function returns
[ Upstream commit 0e2909c6be ]

When cmd_alloc_index(), fails cmd_work_handler() needs
to complete ent->slotted before returning early.
Otherwise the task which issued the command may hang:

   mlx5_core 0000:01:00.0: cmd_work_handler:877:(pid 3880418): failed to allocate command entry
   INFO: task kworker/13:2:4055883 blocked for more than 120 seconds.
         Not tainted 4.19.90-25.44.v2101.ky10.aarch64 #1
   "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
   kworker/13:2    D    0 4055883      2 0x00000228
   Workqueue: events mlx5e_tx_dim_work [mlx5_core]
   Call trace:
      __switch_to+0xe8/0x150
      __schedule+0x2a8/0x9b8
      schedule+0x2c/0x88
      schedule_timeout+0x204/0x478
      wait_for_common+0x154/0x250
      wait_for_completion+0x28/0x38
      cmd_exec+0x7a0/0xa00 [mlx5_core]
      mlx5_cmd_exec+0x54/0x80 [mlx5_core]
      mlx5_core_modify_cq+0x6c/0x80 [mlx5_core]
      mlx5_core_modify_cq_moderation+0xa0/0xb8 [mlx5_core]
      mlx5e_tx_dim_work+0x54/0x68 [mlx5_core]
      process_one_work+0x1b0/0x448
      worker_thread+0x54/0x468
      kthread+0x134/0x138
      ret_from_fork+0x10/0x18

Fixes: 485d65e135 ("net/mlx5: Add a timeout to acquire the command queue semaphore")
Signed-off-by: Chenguang Zhao <zhaochenguang@kylinos.cn>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Acked-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20250108030009.68520-1-zhaochenguang@kylinos.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-01-17 13:36:15 +01:00
..
appletalk net: appletalk: remove Apple/Farallon LocalTalk PC support 2022-05-11 13:08:38 +01:00
arcnet arcnet: restoring support for multiple Sohard Arcnet cards 2023-12-13 18:45:05 +01:00
bonding bonding: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL 2024-12-19 18:11:33 +01:00
caif tty: use u8 for flags 2023-08-11 21:12:45 +02:00
can can: mcp251xfd: mcp251xfd_get_tef_len(): work around erratum DS80000789E 6. 2024-12-14 19:59:52 +01:00
dsa net: dsa: microchip: Fix LAN937X set_ageing_time function 2025-01-09 13:31:58 +01:00
ethernet net/mlx5: Fix variable not being completed when function returns 2025-01-17 13:36:15 +01:00
fddi net: fddi: skfp: rmt: Clean up some inconsistent indenting 2023-04-11 12:46:26 +02:00
fjes fjes: fix memleaks in fjes_hw_setup 2024-01-31 16:19:05 -08:00
hamradio tty: use u8 for flags 2023-08-11 21:12:45 +02:00
hippi net: hippi: Add missing pci_disable_device() in rr_init_one() 2022-09-26 13:22:39 -07:00
hyperv hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event 2024-11-01 01:58:33 +01:00
ieee802154 ieee802154: ca8210: Add missing check for kfifo_alloc() in ca8210_probe() 2025-01-17 13:36:11 +01:00
ipa net: ipa: don't overrun IPA suspend interrupt registers 2024-03-01 13:35:08 +01:00
ipvlan ipvlan: Dont Use skb->sk in ipvlan_process_v{4,6}_outbound 2024-06-12 11:12:59 +02:00
mctp mctp i2c: handle NULL header address 2024-11-08 16:28:26 +01:00
mdio net: mdiobus: fix an OF node reference leak 2024-12-27 13:58:49 +01:00
netdevsim netdevsim: prevent bad user input in nsim_dev_health_break_write() 2024-12-27 13:58:48 +01:00
pcs net: pcs: xpcs: fix the wrong register that was written back 2024-10-10 11:57:58 +02:00
phy net: sfp: change quirks for Alcatel Lucent G-010S-P 2024-12-14 20:00:05 +01:00
plip net: plip: fix break; causing plip to never transmit 2024-11-01 01:58:29 +01:00
ppp ppp: fix ppp_async_encode() illegal access 2024-10-17 15:24:30 +02:00
pse-pd net: pse-pd: PSE_REGULATOR should depend on REGULATOR 2022-10-05 20:32:28 -07:00
slip slip: make slhc_remember() more robust against malicious packets 2024-10-17 15:24:30 +02:00
team team: Fix feature propagation of NETIF_F_GSO_ENCAP_ALL 2024-12-19 18:11:33 +01:00
thunderbolt net: thunderbolt: Fix TCPv6 GSO checksum calculation 2023-09-15 13:45:05 +01:00
usb net: usb: qmi_wwan: add Telit FE910C04 compositions 2025-01-09 13:32:05 +01:00
vmxnet3 vmxnet3: Fix packet corruption in vmxnet3_xdp_xmit_frame 2024-11-01 01:58:24 +01:00
vxlan ipv6: introduce dst_rt6_info() helper 2024-12-14 19:59:35 +01:00
wan drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close() 2023-09-22 08:19:18 +01:00
wireguard wireguard: send: annotate intentional data race in checking empty queue 2024-07-18 13:21:23 +02:00
wireless wifi: ath10k: avoid NULL pointer error during sdio remove 2025-01-09 13:31:42 +01:00
wwan net: wwan: iosm: Properly check for valid exec stage in ipc_mmio_init() 2025-01-09 13:32:02 +01:00
xen-netback net/xen-netback: prevent UAF in xenvif_flush_hash() 2024-10-10 11:57:22 +02:00
amt.c amt: do not use overwrapped cb area 2024-01-25 15:35:56 -08:00
bareudp.c bareudp: Pull inner IP header on xmit. 2024-10-04 16:28:58 +02:00
dummy.c net: add netdev_lockdep_set_classes() to virtual drivers 2024-04-13 13:07:30 +02:00
eql.c net: rename reference+tracking helpers 2022-06-09 21:52:55 -07:00
geneve.c geneve: do not assume mac header is set in geneve_xmit_skb() 2024-12-14 19:59:40 +01:00
gtp.c gtp: allow -1 to be specified as file description from userspace 2024-11-08 16:28:18 +01:00
ifb.c net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
Kconfig netconsole: Enable compile time configuration 2023-08-17 19:25:42 -07:00
LICENSE.SRC Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
loopback.c net: add netdev_lockdep_set_classes() to virtual drivers 2024-04-13 13:07:30 +02:00
macsec.c macsec: Fix use-after-free while sending the offloading packet 2024-11-08 16:28:18 +01:00
macvlan.c macvlan: Don't propagate promisc change to lower dev in passthru 2023-11-28 17:19:54 +00:00
macvtap.c drivers: remove struct module * setting from struct class 2023-03-17 15:16:27 +01:00
Makefile net: Always descend into dsa/ folder with CONFIG_NET_DSA enabled 2024-06-12 11:12:46 +02:00
mdio.c net: mdio: Correct function name mdio45_links_ok() in comment 2021-03-29 13:42:44 -07:00
mhi_net.c net: mhi: Remove redundant initialization owner in mhi_net_driver 2023-08-10 17:29:42 -07:00
mii.c net: mii: make mii_ethtool_gset() return void 2021-08-19 13:06:53 +01:00
net_failover.c net/net_failover: fix txq exceeding warning 2023-03-27 08:08:57 +01:00
netconsole.c net: netconsole: Disable target before netpoll cleanup 2024-08-03 08:54:13 +02:00
nlmon.c net: don't include ethtool.h from netdevice.h 2020-11-23 17:27:04 -08:00
ntb_netdev.c net: ntb_netdev: Move ntb_netdev_rx_handler() to call netif_rx() from __netif_rx() 2024-07-11 12:49:13 +02:00
rionet.c driver core: class: remove struct class_interface * from callbacks 2023-04-03 21:42:52 +02:00
sb1000.c net: dev: Makes sure netif_rx() can be invoked in any context. 2022-02-14 13:38:35 +00:00
Space.c net: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:07 -07:00
sungem_phy.c net: sungem_phy: Add of_node_put() for reference returned by of_get_parent() 2022-07-21 19:04:19 -07:00
tap.c tap: add missing verification for short frame 2024-07-27 11:34:11 +02:00
tun.c net: tun: fix tun_napi_alloc_frags() 2024-12-27 13:58:50 +01:00
veth.c net: add netdev_lockdep_set_classes() to virtual drivers 2024-04-13 13:07:30 +02:00
virtio_net.c virtio-net: fix overflow inside virtnet_rq_alloc 2024-12-14 20:00:07 +01:00
vrf.c ipv6: introduce dst_rt6_info() helper 2024-12-14 19:59:35 +01:00
vsockmon.c net: don't include ethtool.h from netdevice.h 2020-11-23 17:27:04 -08:00
xen-netfront.c xen/netfront: fix crash when removing device 2024-12-19 18:11:35 +01:00