summaryrefslogtreecommitdiff
path: root/net/smc/smc_diag.c
diff options
context:
space:
mode:
authorWen Gu <guwen@linux.alibaba.com>2023-12-19 17:26:13 +0300
committerDavid S. Miller <davem@davemloft.net>2023-12-26 23:24:33 +0300
commitb40584d145700addc70cc29e4f0850a4ed955b1c (patch)
treefe363ce85f1d5c34e2779e95bde1c1446d5abed2 /net/smc/smc_diag.c
parent8dd512df3c98ce8081e3541990bf849157675723 (diff)
downloadlinux-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.c7
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;