diff options
author | David S. Miller <davem@davemloft.net> | 2021-12-28 12:42:46 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-12-28 12:42:46 +0000 |
commit | 16fa29aef7963293f8792789210002ec9f9607ac (patch) | |
tree | 7dc9d1354ef88f560485ae6e2ecf701b55ec9645 /drivers/net/ethernet/intel/igc | |
parent | 1b9dadba502234eea7244879b8d5d126bfaf9f0c (diff) | |
parent | 349d43127dac00c15231e8ffbcaabd70f7b0e544 (diff) |
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>
Diffstat (limited to 'drivers/net/ethernet/intel/igc')
0 files changed, 0 insertions, 0 deletions