Re: [PATCH net] net/smc: Avoid setting clcsock options after clcsock released

From: Wen Gu
Date: Thu Jan 13 2022 - 03:24:05 EST


Thanks for your reply.

On 2022/1/12 5:38 pm, Karsten Graul wrote:
On 11/01/2022 17:34, Wen Gu wrote:
Thanks for your reply.

On 2022/1/11 6:03 pm, Karsten Graul wrote:
On 10/01/2022 10:38, Wen Gu wrote:
We encountered a crash in smc_setsockopt() and it is caused by
accessing smc->clcsock after clcsock was released.

I like the idea to use RCU with rcu_assign_pointer() to protect that pointer!

Lets go with your initial patch (improved to address the access in smc_switch_to_fallback())
for now because it solves your current problem.


OK, I will improve the patch, adding check before clcsock access in smc_switch_to_fallback()
and return an error (-EBADF) if smc->clcsock is NULL. The caller of smc_switch_to_fallback()
will check the return value to identify whether fallback is possible.

I put that RCU thing on our list, but if either of us here starts working on that please let the
others know so we don't end up doing parallel work on this. But I doubt that we will be able to start working
on that soon.

Thanks for the good idea!

Thank you! If I start working on the RCU things, I will send a RFC to let you know.

Thanks,
Wen Gu