net/smc: fix smc clc failed issue when netdevice not in init_net
authorAlbert Huang <huangjie.albert@bytedance.com>
Wed, 11 Oct 2023 07:48:51 +0000 (15:48 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 13 Oct 2023 23:52:02 +0000 (16:52 -0700)
commitc68681ae46eaaa1640b52fe366d21a93b2185df5
tree9543a488783dfe6d8fcd717b69d5a01e95525a5f
parent419ce133ab928ab5efd7b50b2ef36ddfd4eadbd2
net/smc: fix smc clc failed issue when netdevice not in init_net

If the netdevice is within a container and communicates externally
through network technologies such as VxLAN, we won't be able to find
routing information in the init_net namespace. To address this issue,
we need to add a struct net parameter to the smc_ib_find_route function.
This allow us to locate the routing information within the corresponding
net namespace, ensuring the correct completion of the SMC CLC interaction.

Fixes: e5c4744cfb59 ("net/smc: add SMC-Rv2 connection establishment")
Signed-off-by: Albert Huang <huangjie.albert@bytedance.com>
Reviewed-by: Dust Li <dust.li@linux.alibaba.com>
Reviewed-by: Wenjia Zhang <wenjia@linux.ibm.com>
Link: https://lore.kernel.org/r/20231011074851.95280-1-huangjie.albert@bytedance.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/smc/af_smc.c
net/smc/smc_ib.c
net/smc/smc_ib.h