]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'smc-fixes'
authorDavid S. Miller <davem@davemloft.net>
Tue, 28 Dec 2021 12:42:46 +0000 (12:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Dec 2021 12:42:46 +0000 (12:42 +0000)
commit65771f0097d4d5b1d078ace77d86f22215a069bd
tree7dc9d1354ef88f560485ae6e2ecf701b55ec9645
parente32010092a5b58abbf51c24ff1eb4e122b6865f5
parent05f6ef58da86b9fbfd6679c68325d338d0065e80
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 <davem@davemloft.net>