Re: [PATCH v2] RDMA/cma: Fix workqueue crash in cma_netevent_work_handler
From: Sharath Srinivasan
Date: Wed Apr 09 2025 - 12:44:35 EST
On 2025-04-09 4:20 a.m., Leon Romanovsky wrote:
>
> On Wed, 26 Mar 2025 14:05:32 -0700, Sharath Srinivasan wrote:
>> struct rdma_cm_id has member "struct work_struct net_work"
>> that is reused for enqueuing cma_netevent_work_handler()s
>> onto cma_wq.
>>
>> Below crash[1] can occur if more than one call to
>> cma_netevent_callback() occurs in quick succession,
>> which further enqueues cma_netevent_work_handler()s for the
>> same rdma_cm_id, overwriting any previously queued work-item(s)
>> that was just scheduled to run i.e. there is no guarantee
>> the queued work item may run between two successive calls
>> to cma_netevent_callback() and the 2nd INIT_WORK would overwrite
>> the 1st work item (for the same rdma_cm_id), despite grabbing
>> id_table_lock during enqueue.
>>
>> [...]
>
> Applied, thanks!
>
> [1/1] RDMA/cma: Fix workqueue crash in cma_netevent_work_handler
> https://urldefense.com/v3/__https://git.kernel.org/rdma/rdma/c/052996ebc39e3e__;!!ACWV5N9M2RV99hQ!LLGepcc45JwMb6s1VnxWb4Y2hyAGH7AZaE1BoDtVREqdciSOHOIlKiu4RvKD9bL5NYAEtIMG6oVL2cU7PQ$
>
> Best regards,
Thank you, Leon and Patrisious!
Best Regards,
Sharath