diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c index f572ab736175f9eedde67eaf40460b90addae9e7..5f00aa5485ccbcfad055b0cee01d4268c4d877b1 100644 --- a/net/smc/smc_core.c +++ b/net/smc/smc_core.c @@ -1560,6 +1560,8 @@ static void smc_conn_kill(struct smc_connection *conn, bool soft) smc_sk_wake_ups(smc); if (conn->lgr->is_smcd) { smc_ism_unset_conn(conn); + if (smc_ism_dmb_mappable(conn->lgr->smcd)) + smcd_buf_detach(conn); if (soft) tasklet_kill(&conn->rx_tsklet); else