diff options
author | Wen Gu <guwen@linux.alibaba.com> | 2023-12-19 17:26:13 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-12-26 23:24:33 +0300 |
commit | b40584d145700addc70cc29e4f0850a4ed955b1c (patch) | |
tree | fe363ce85f1d5c34e2779e95bde1c1446d5abed2 /net/smc/smc_diag.c | |
parent | 8dd512df3c98ce8081e3541990bf849157675723 (diff) | |
download | linux-b40584d145700addc70cc29e4f0850a4ed955b1c.tar.xz |
net/smc: compatible with 128-bits extended GID of virtual ISM device
According to virtual ISM support feature defined by SMCv2.1, GIDs of
virtual ISM device are UUIDs defined by RFC4122, which are 128-bits
long. So some adaptation work is required. And note that the GIDs of
existing platform firmware ISM devices still remain 64-bits long.
Signed-off-by: Wen Gu <guwen@linux.alibaba.com>
Reviewed-by: Alexandra Winter <wintera@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_diag.c')
-rw-r--r-- | net/smc/smc_diag.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/smc/smc_diag.c b/net/smc/smc_diag.c index a584613aca12..c180c180d0d1 100644 --- a/net/smc/smc_diag.c +++ b/net/smc/smc_diag.c @@ -21,6 +21,7 @@ #include "smc.h" #include "smc_core.h" +#include "smc_ism.h" struct smc_diag_dump_ctx { int pos[2]; @@ -168,12 +169,14 @@ static int __smc_diag_dump(struct sock *sk, struct sk_buff *skb, struct smc_connection *conn = &smc->conn; struct smcd_diag_dmbinfo dinfo; struct smcd_dev *smcd = conn->lgr->smcd; + struct smcd_gid smcd_gid; memset(&dinfo, 0, sizeof(dinfo)); dinfo.linkid = *((u32 *)conn->lgr->id); - dinfo.peer_gid = conn->lgr->peer_gid; - dinfo.my_gid = smcd->ops->get_local_gid(smcd); + dinfo.peer_gid = conn->lgr->peer_gid.gid; + smcd->ops->get_local_gid(smcd, &smcd_gid); + dinfo.my_gid = smcd_gid.gid; dinfo.token = conn->rmb_desc->token; dinfo.peer_token = conn->peer_token; |