]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
IB: directly cast the sockaddr union to aockaddr
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Aug 2019 16:44:12 +0000 (18:44 +0200)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Tue, 17 Sep 2019 16:02:18 +0000 (18:02 +0200)
BugLink: https://bugs.launchpad.net/bugs/1840378
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/infiniband/core/sa_query.c

index b81d2597f563a59032b05c38292180b453ba4623..50068b0a91fa449917b7de4b3d8ed7ce582991f8 100644 (file)
@@ -1263,7 +1263,6 @@ int ib_init_ah_from_path(struct ib_device *device, u8 port_num,
                                &init_net
                };
                union {
-                       struct sockaddr     _sockaddr;
                        struct sockaddr_in  _sockaddr_in;
                        struct sockaddr_in6 _sockaddr_in6;
                } sgid_addr, dgid_addr;
@@ -1271,12 +1270,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;