[PATCH 5.17 079/298] net/smc: set ini->smcrv2.ib_dev_v2 to NULL if SMC-Rv2 is unavailable

From: Greg Kroah-Hartman
Date: Mon Jun 13 2022 - 10:21:05 EST


From: liuyacan <liuyacan@xxxxxxxxxxxxxxxx>

[ Upstream commit b3b1a17538d3ef6a9667b2271216fd16d7678ab5 ]

In the process of checking whether RDMAv2 is available, the current
implementation first sets ini->smcrv2.ib_dev_v2, and then allocates
smc buf desc and register rmb, but the latter may fail. In this case,
the pointer should be reset.

Fixes: e49300a6bf62 ("net/smc: add listen processing for SMC-Rv2")
Signed-off-by: liuyacan <liuyacan@xxxxxxxxxxxxxxxx>
Reviewed-by: Karsten Graul <kgraul@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20220525085408.812273-1-liuyacan@xxxxxxxxxxxxxxxx
Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
net/smc/af_smc.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/net/smc/af_smc.c b/net/smc/af_smc.c
index b9fe31834354..4bc6b16669f3 100644
--- a/net/smc/af_smc.c
+++ b/net/smc/af_smc.c
@@ -1973,6 +1973,7 @@ static void smc_find_rdma_v2_device_serv(struct smc_sock *new_smc,

not_found:
ini->smcr_version &= ~SMC_V2;
+ ini->smcrv2.ib_dev_v2 = NULL;
ini->check_smcrv2 = false;
}

--
2.35.1