From: David S. Miller Date: Tue, 28 Dec 2021 12:42:46 +0000 (+0000) Subject: Merge branch 'smc-fixes' X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=16fa29aef7963293f8792789210002ec9f9607ac;p=uclinux-h8%2Flinux.git Merge branch 'smc-fixes' Dust Li says: ==================== net/smc: fix kernel panic caused by race of smc_sock This patchset fixes the race between smc_release triggered by close(2) and cdc_handle triggered by underlaying RDMA device. The race is caused because the smc_connection may been released before the pending tx CDC messages got its CQEs. In order to fix this, I add a counter to track how many pending WRs we have posted through the smc_connection, and only release the smc_connection after there is no pending WRs on the connection. The first patch prevents posting WR on a QP that is not in RTS state. This patch is needed because if we post WR on a QP that is not in RTS state, ib_post_send() may success but no CQE will return, and that will confuse the counter tracking the pending WRs. The second patch add a counter to track how many WRs were posted through the smc_connection, and don't reset the QP on link destroying to prevent leak of the counter. ==================== Signed-off-by: David S. Miller --- 16fa29aef7963293f8792789210002ec9f9607ac