On 28/12/2021 08:49, Wen Gu wrote: > SMC connections might fail to be registered to a link group due to > things like unable to find a link to assign to in its creation. As > a result, connection creation will return a failure and most > resources related to the connection won't be applied or initialized, > such as conn->abort_work or conn->lnk. I agree with your fix to set conn->lgr to NULL when smc_lgr_register_conn() fails. It would probably be better to have smc_lgr_register_conn() set conn->lgr instead to set it before in smc_conn_create(). So it would not be set at all then the registration failes. What I do not understand is the extra step after the new label out_unreg: that may invoke smc_lgr_schedule_free_work(). You did not talk about that one. Is the idea to have a new link group get freed() when a connection could not be registered on it? In that case I would expect this code after label create: in smc_lgr_create(), when the rc from smc_lgr_register_conn() is not zero. Thoughts?