From: Ursula Braun Date: Mon, 10 Apr 2017 12:57:58 +0000 (+0200) Subject: net/smc: return active RoCE port only X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=5da7e4d35507992da2af6c89434c33a69802de9c;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.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 f1cff0159980..78f7af28ae4f 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; } }