linux/drivers/net/ethernet/chelsio
Sang-Hoon Choi 4c9dc0faca cxgb4/ch_ktls: disable softirqs around tid_list erases
chcr_ktls_cpl_act_open_rpl() inserts into tid_list from the receive path
using xa_insert_bh().  The array is shared by the adapter's connections
and initialized with XA_FLAGS_LOCK_BH.  However, chcr_ktls_dev_del() and
the chcr_ktls_dev_add() error path use xa_erase(), which takes the XArray
lock without disabling softirqs.

When cleanup runs with softirqs enabled, a receive softirq for another
connection on the same CPU can interrupt the erase and spin on the lock
held by the interrupted task.  Use xa_erase_bh() at both sites to match
the insertion path.

Fixes: 65e302a9bd ("cxgb4/ch_ktls: Clear resources when pf4 device is removed")
Reported-by: Changyul Lee <lcy8047@gmail.com>
Assisted-by: LLM
Signed-off-by: Sang-Hoon Choi <csh0052@gmail.com>
Reviewed-by: Ayush Sawal <ayush.sawal@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2026-10-02 09:58:07 +01:00
..
cxgb net: Consistently define pci_device_ids using named initializers 2026-05-12 18:16:34 -07:00
cxgb3 net: Consistently define pci_device_ids using named initializers 2026-05-12 18:16:34 -07:00
cxgb4 net: add READ_ONCE()/WRITE_ONCE() annotations for dev->num_tc 2026-08-17 10:27:48 -07:00
cxgb4vf net: Consistently define pci_device_ids using named initializers 2026-05-12 18:16:34 -07:00
inline_crypto cxgb4/ch_ktls: disable softirqs around tid_list erases 2026-10-02 09:58:07 +01:00
libcxgb net/chelsio/libcxgb: Add __percpu annotations to libcxgb_ppm.c 2024-08-06 19:35:40 -07:00
Kconfig ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs 2026-03-29 11:21:22 -07:00
Makefile