mirror of
https://github.com/torvalds/linux.git
synced 2025-11-05 11:10:22 +02:00
There are two flows for handling RDMA_CM_EVENT_ROUTE_RESOLVED, either the
handler triggers a completion and another thread does rdma_connect() or
the handler directly calls rdma_connect().
In all cases rdma_connect() needs to hold the handler_mutex, but when
handler's are invoked this is already held by the core code. This causes
ULPs using the 2nd method to deadlock.
Provide a rdma_connect_locked() and have all ULPs call it from their
handlers.
Link: https://lore.kernel.org/r/0-v2-53c22d5c1405+33-rdma_connect_locking_jgg@nvidia.com
Reported-and-tested-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com>
Fixes:
|
||
|---|---|---|
| .. | ||
| iscsi_iser.c | ||
| iscsi_iser.h | ||
| iser_initiator.c | ||
| iser_memory.c | ||
| iser_verbs.c | ||
| Kconfig | ||
| Makefile | ||