net/smc: fix incorrect SMC-D link group matching logic
authorWen Gu <guwen@linux.alibaba.com>
Thu, 25 Jan 2024 12:39:16 +0000 (20:39 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 26 Jan 2024 22:06:05 +0000 (14:06 -0800)
commitc3dfcdb65ec1a4813ec1e0871c52c671ba9c71ac
treed7642a8cbc942af8b517d209010a96d9efc9edc4
parentfcf67d82b8b878bdd95145382be43927bce07ec6
net/smc: fix incorrect SMC-D link group matching logic

The logic to determine if SMC-D link group matches is incorrect. The
correct logic should be that it only returns true when the GID is the
same, and the SMC-D device is the same and the extended GID is the same
(in the case of virtual ISM).

It can be fixed by adding brackets around the conditional (or ternary)
operator expression. But for better readability and maintainability, it
has been changed to an if-else statement.

Reported-by: Matthew Rosato <mjrosato@linux.ibm.com>
Closes: https://lore.kernel.org/r/13579588-eb9d-4626-a063-c0b77ed80f11@linux.ibm.com
Fixes: b40584d14570 ("net/smc: compatible with 128-bits extended GID of virtual ISM device")
Link: https://lore.kernel.org/r/13579588-eb9d-4626-a063-c0b77ed80f11@linux.ibm.com
Signed-off-by: Wen Gu <guwen@linux.alibaba.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Link: https://lore.kernel.org/r/20240125123916.77928-1-guwen@linux.alibaba.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/smc/smc_core.c