net/smc: use correct vlan gid of RoCE device
authorUrsula Braun <ubraun@linux.ibm.com>
Wed, 25 Jul 2018 14:35:31 +0000 (16:35 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 26 Jul 2018 05:25:53 +0000 (22:25 -0700)
commit7005ada68d1774d7c1109deaba0c2cd8e46f5091
treecf7d9bc452cdbee2f3197874adbbf8089fc7a879
parent947541f36c561b5e0ca639ffc450a8c5221de467
net/smc: use correct vlan gid of RoCE device

SMC code uses the base gid for VLAN traffic. The gids exchanged in
the CLC handshake and the gid index used for the QP have to switch
from the base gid to the appropriate vlan gid.

When searching for a matching IB device port for a certain vlan
device, it does not make sense to return an IB device port, which
is not enabled for the used vlan_id. Add another check whether a
vlan gid exists for a certain IB device port.

Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
12 files changed:
net/smc/af_smc.c
net/smc/smc_clc.c
net/smc/smc_clc.h
net/smc/smc_core.c
net/smc/smc_core.h
net/smc/smc_diag.c
net/smc/smc_ib.c
net/smc/smc_ib.h
net/smc/smc_llc.c
net/smc/smc_llc.h
net/smc/smc_pnet.c
net/smc/smc_pnet.h