rxe: Do not use 'struct sockaddr' in a uapi header
authorJason Gunthorpe <jgg@mellanox.com>
Wed, 7 Feb 2018 23:49:10 +0000 (16:49 -0700)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 14 Feb 2018 23:31:35 +0000 (16:31 -0700)
Linux has two 'linux/socket.h' files - and only the one in the kernel
defines struct sockaddr - the user space one does not.

Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/sw/rxe/rxe_av.c
include/uapi/rdma/rdma_user_rxe.h

index 7522d1af3ae2a310cdfb18ef46b5103895181e5e..7f1ae364088a07cad8de98189ee82603b1d8d2e6 100644 (file)
@@ -74,8 +74,9 @@ void rxe_av_fill_ip_info(struct rxe_av *av,
                        struct ib_gid_attr *sgid_attr,
                        union ib_gid *sgid)
 {
-       rdma_gid2ip(&av->sgid_addr._sockaddr, sgid);
-       rdma_gid2ip(&av->dgid_addr._sockaddr, &rdma_ah_read_grh(attr)->dgid);
+       rdma_gid2ip((struct sockaddr *)&av->sgid_addr, sgid);
+       rdma_gid2ip((struct sockaddr *)&av->dgid_addr,
+                   &rdma_ah_read_grh(attr)->dgid);
        av->network_type = ib_gid_to_network_type(sgid_attr->gid_type, sgid);
 }
 
index bdeea948b2f3a428efa5e19bb163e1d2ebd4a41b..e3e6852b58eb450121ddd457666a2d47d7cb7a44 100644 (file)
@@ -35,6 +35,9 @@
 #define RDMA_USER_RXE_H
 
 #include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/in.h>
+#include <linux/in6.h>
 
 union rxe_gid {
        __u8    raw[16];
@@ -57,7 +60,6 @@ struct rxe_av {
        __u8                    network_type;
        struct rxe_global_route grh;
        union {
-               struct sockaddr         _sockaddr;
                struct sockaddr_in      _sockaddr_in;
                struct sockaddr_in6     _sockaddr_in6;
        } sgid_addr, dgid_addr;