mirror of
https://github.com/torvalds/linux.git
synced 2026-10-17 06:20:02 +02:00
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:
|
||
|---|---|---|
| .. | ||
| cxgb | ||
| cxgb3 | ||
| cxgb4 | ||
| cxgb4vf | ||
| inline_crypto | ||
| libcxgb | ||
| Kconfig | ||
| Makefile | ||