]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
RDMA/erdma: Support create_ah/destroy_ah in non-sleepable contexts
authorBoshi Yu <boshiyu@linux.alibaba.com>
Thu, 26 Dec 2024 08:41:11 +0000 (16:41 +0800)
committerLeon Romanovsky <leon@kernel.org>
Mon, 30 Dec 2024 18:42:52 +0000 (13:42 -0500)
commita6c346760a52afaf7d75991c16ee4d70d6270d06
tree613f2c04c9e99fcff074d1da790754facbc61c71
parent26981e688ca896e9310e1918d104a79cb140ce85
RDMA/erdma: Support create_ah/destroy_ah in non-sleepable contexts

The RDMA CM module might invoke erdma_create_ah() or erdma_destroy_ah()
in a non-sleepable context. Both of these functions will call the
erdma_post_cmd_wait(), which can potentially sleep and occasionally lead
to a hard lockup. Therefore, post the create_ah and destroy_ah commands in
polling mode if the RDMA_CREATE_AH_SLEEPABLE and RDMA_DESTROY_AH_SLEEPABLE
flags are not set, respectively.

Reviewed-by: Cheng Xu <chengyou@linux.alibaba.com>
Signed-off-by: Boshi Yu <boshiyu@linux.alibaba.com>
Link: https://patch.msgid.link/20241226084141.74823-5-boshiyu@linux.alibaba.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/hw/erdma/erdma_verbs.c