Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d41d78cc authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

IB: directly cast the sockaddr union to aockaddr



Like commit 641114d2af31 ("RDMA: Directly cast the sockaddr union to
sockaddr") we need to quiet gcc 9 from warning about this crazy union.
That commit did not fix all of the warnings in 4.19 and older kernels
because the logic in roce_resolve_route_from_path() was rewritten
between 4.19 and 5.2 when that change happened.

Cc: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7d5750c0
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1109,7 +1109,6 @@ int ib_init_ah_from_path(struct ib_device *device, u8 port_num,
						 .net = rec->net ? rec->net :
							 &init_net};
		union {
			struct sockaddr     _sockaddr;
			struct sockaddr_in  _sockaddr_in;
			struct sockaddr_in6 _sockaddr_in6;
		} sgid_addr, dgid_addr;
@@ -1117,12 +1116,13 @@ int ib_init_ah_from_path(struct ib_device *device, u8 port_num,
		if (!device->get_netdev)
			return -EOPNOTSUPP;

		rdma_gid2ip(&sgid_addr._sockaddr, &rec->sgid);
		rdma_gid2ip(&dgid_addr._sockaddr, &rec->dgid);
		rdma_gid2ip((struct sockaddr *)&sgid_addr, &rec->sgid);
		rdma_gid2ip((struct sockaddr *)&dgid_addr, &rec->dgid);

		/* validate the route */
		ret = rdma_resolve_ip_route(&sgid_addr._sockaddr,
					    &dgid_addr._sockaddr, &dev_addr);
		ret = rdma_resolve_ip_route((struct sockaddr *)&sgid_addr,
					    (struct sockaddr *)&dgid_addr,
					    &dev_addr);
		if (ret)
			return ret;