From: Ursula Braun Date: Mon, 10 Apr 2017 12:57:58 +0000 (+0200) Subject: net/smc: return active RoCE port only X-Git-Tag: v4.12-rc1~108^2~178^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5da7e4d35507992da2af6c89434c33a69802de9c;p=thirdparty%2Fkernel%2Flinux.git net/smc: return active RoCE port only SMC requires an active ib port on the RoCE device. smc_pnet_find_roce_resource() determines the matching RoCE device port according to the configured PNET table. Do not return the found RoCE device port, if it is not flagged active. Signed-off-by: Ursula Braun Reviewed-by: Thomas Richter Signed-off-by: David S. Miller --- diff --git a/net/smc/smc_pnet.c b/net/smc/smc_pnet.c index f1cff01599805..78f7af28ae4f2 100644 --- a/net/smc/smc_pnet.c +++ b/net/smc/smc_pnet.c @@ -523,8 +523,11 @@ void smc_pnet_find_roce_resource(struct sock *sk, read_lock(&smc_pnettable.lock); list_for_each_entry(pnetelem, &smc_pnettable.pnetlist, list) { if (dst->dev == pnetelem->ndev) { - *smcibdev = pnetelem->smcibdev; - *ibport = pnetelem->ib_port; + if (smc_ib_port_active(pnetelem->smcibdev, + pnetelem->ib_port)) { + *smcibdev = pnetelem->smcibdev; + *ibport = pnetelem->ib_port; + } break; } }