From: James Simmons Date: Wed, 22 May 2024 14:53:24 +0000 (-0400) Subject: LU-17867 ko2iblnd: gcc bug work around X-Git-Tag: 2.15.64~193 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=refs%2Fchanges%2F72%2F55172%2F4;p=fs%2Flustre-release.git LU-17867 ko2iblnd: gcc bug work around Gcc 11 reports error: array subscript 'struct sockaddr_in6[0]' is partly outside array bounds of 'struct sockaddr[1]' due to a bug in gcc that it becomes confused with the union. To work around this we move to struct sockaddr_storage from struct sockaddr. Test-Parameters: trivial Change-Id: I586042d6e3c59be8c63e2821659cf9d3bcdac8e3 Signed-off-by: James Simmons Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55172 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Chris Horn Reviewed-by: Arshad Hussain Reviewed-by: Shaun Tancheff Reviewed-by: Andreas Dilger --- diff --git a/lnet/klnds/o2iblnd/o2iblnd_cb.c b/lnet/klnds/o2iblnd/o2iblnd_cb.c index c310eba..6ad06f8 100644 --- a/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -1455,8 +1455,8 @@ kiblnd_connect_peer(struct kib_peer_ni *peer_ni) { struct rdma_cm_id *cmid; struct kib_net *net = peer_ni->ibp_ni->ni_data; - struct sockaddr srcaddr; - struct sockaddr dstaddr; + struct sockaddr_storage srcaddr; + struct sockaddr_storage dstaddr; int rc; LASSERT (net != NULL); @@ -1506,10 +1506,12 @@ kiblnd_connect_peer(struct kib_peer_ni *peer_ni) kiblnd_peer_addref(peer_ni); /* cmid's ref */ if (*kiblnd_tunables.kib_use_priv_port) { - rc = kiblnd_resolve_addr(cmid, &srcaddr, &dstaddr, + rc = kiblnd_resolve_addr(cmid, (struct sockaddr *)&srcaddr, + (struct sockaddr *)&dstaddr, kiblnd_timeout() * 1000); } else { - rc = rdma_resolve_addr(cmid, &srcaddr, &dstaddr, + rc = rdma_resolve_addr(cmid, (struct sockaddr *)&srcaddr, + (struct sockaddr *)&dstaddr, kiblnd_timeout() * 1000); } if (rc != 0) {