From: Sean Hefty Date: Fri, 22 Jan 2016 18:40:36 +0000 (-0800) Subject: commit X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=c38801014917d633a6c6dd860258bbb414ba90b4;p=~shefty%2Fibacm.git commit --- diff --git a/meta b/meta index a799716..85335d6 100644 --- a/meta +++ b/meta @@ -1,8 +1,7 @@ Version: 1 -Previous: 2617b58c6c3b57d6882dfa7cf84b7d981b65b0af +Previous: efd12f727891405f614dba4082fe7517313f90c1 Head: 41c762997ac56f735d20d5f67b81006637596ad7 Applied: - ibacm-check-the-presence-of: 41c762997ac56f735d20d5f67b81006637596ad7 Unapplied: suse: 7076e2a00570a3cda4e4ce034419399a23ebfb0a dev-name2ip: 8e00708e882239292492e13aa51c82042255933c diff --git a/patches/ibacm-check-the-presence-of b/patches/ibacm-check-the-presence-of deleted file mode 100644 index bf604bf..0000000 --- a/patches/ibacm-check-the-presence-of +++ /dev/null @@ -1,181 +0,0 @@ -Bottom: 08bd6b8ba660358b512d298f9f1c15f944cd098b -Top: 7b7d9dfba23fb655a2df89b6fdf04c4e94869572 -Author: Kaike Wan -Date: 2016-01-04 13:36:33 -0500 - -Ibacm: Check the presence of header files for netlink support - -It was found that the latest ibacm will not build in old distros that -don't have the two header files rdma/rdma_netlink.h and rdma/ib_user_sa.h. -To be backward compatible, the netlink support should be disabled if -the header files were absent. This patch will address the issue. - -Reported-by: Hal Rosenstock -Signed-off-by: Kaike Wan -Signed-off-by: Sean Hefty - - ---- - -diff --git a/configure.ac b/configure.ac -index 4d493bd..75cc915 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -61,6 +61,13 @@ AC_CHECK_HEADER(infiniband/umad.h, [], - AC_MSG_ERROR([ not found. Is libibumad installed?])) - fi - -+dnl Check netlink header files -+AC_CHECK_HEADER(rdma/rdma_netlink.h, -+ AC_CHECK_HEADER(rdma/ib_user_sa.h, -+ AC_DEFINE(HAVE_NETLINK, 1, [Have netlink header files]), -+ AC_MSG_WARN([Missing rdma/ib_user_sa.h])), -+ AC_MSG_WARN([Missing rdma/rdma_netlink.h])) -+ - dnl Check for gcc atomic intrinsics - AC_MSG_CHECKING(compiler support for atomics) - AC_TRY_LINK([int i = 0;], -diff --git a/src/acm.c b/src/acm.c -index 8b6d762..f6191bd 100644 ---- a/src/acm.c -+++ b/src/acm.c -@@ -46,8 +46,10 @@ - #include - #include - #include -+#ifdef HAVE_NETLINK - #include - #include -+#endif - #include - #include - #include -@@ -57,14 +59,18 @@ - #include - #include - #include -+#ifdef HAVE_NETLINK - #include - #include -+#endif - #include - #include "acm_mad.h" - #include "acm_util.h" -+#ifdef HAVE_NETLINK - #if !defined(RDMA_NL_LS_F_ERR) - #include "acm_netlink.h" - #endif -+#endif - - #define src_out data[0] - #define src_index data[1] -@@ -73,7 +79,9 @@ - #define MAX_EP_ADDR 4 - #define NL_MSG_BUF_SIZE 4096 - #define ACM_PROV_NAME_SIZE 64 -+#ifdef HAVE_NETLINK - #define NL_CLIENT_INDEX 0 -+#endif - - struct acmc_subnet { - DLIST_ENTRY entry; -@@ -160,6 +168,7 @@ struct acmc_sa_req { - struct acm_sa_mad mad; - }; - -+#ifdef HAVE_NETLINK - struct acm_nl_path { - struct nlattr attr_hdr; - struct ib_path_rec_data rec; -@@ -174,6 +183,7 @@ struct acm_nl_msg { - struct acm_nl_path path[0]; - }; - }; -+#endif - - static char def_prov_name[ACM_PROV_NAME_SIZE] = "ibacmp"; - static DLIST_ENTRY provider_list; -@@ -196,7 +206,9 @@ static struct acmc_ep *acm_find_ep(struct acmc_port *port, uint16_t pkey); - static int acm_ep_insert_addr(struct acmc_ep *ep, const char *name, uint8_t *addr, - size_t addr_len, uint8_t addr_type); - static void acm_event_handler(struct acmc_device *dev); -+#ifdef HAVE_NETLINK - static int acm_nl_send(SOCKET sock, struct acm_msg *msg); -+#endif - - static struct sa_data { - int timeout; -@@ -491,9 +503,11 @@ int acm_resolve_response(uint64_t id, struct acm_msg *msg) - goto release; - } - -+#ifdef HAVE_NETLINK - if (id == NL_CLIENT_INDEX) - ret = acm_nl_send(client->sock, msg); - else -+#endif - ret = send(client->sock, (char *) msg, msg->hdr.length, 0); - - if (ret != msg->hdr.length) -@@ -626,8 +640,10 @@ static void acm_svr_accept(void) - } - - for (i = 0; i < FD_SETSIZE - 1; i++) { -+ #ifdef HAVE_NETLINK - if (i == NL_CLIENT_INDEX) - continue; -+ #endif - if (!atomic_get(&client_array[i].refcnt)) - break; - } -@@ -1377,6 +1393,7 @@ static void acm_ipnl_handler(void) - } - } - -+#ifdef HAVE_NETLINK - static int acm_nl_send(SOCKET sock, struct acm_msg *msg) - { - struct sockaddr_nl dst_addr; -@@ -1698,6 +1715,7 @@ static int acm_init_nl(void) - client_array[NL_CLIENT_INDEX].sock = nl_rcv_socket; - return 0; - } -+#endif - - static void acm_server(void) - { -@@ -1713,9 +1731,11 @@ static void acm_server(void) - acm_log(0, "ERROR - server listen failed\n"); - return; - } -+#ifdef HAVE_NETLINK - ret = acm_init_nl(); - if (ret) - acm_log(1, "Warn - Netlink init failed\n"); -+#endif - - while (1) { - n = (int) listen_socket; -@@ -1754,9 +1774,11 @@ static void acm_server(void) - if (client_array[i].sock != INVALID_SOCKET && - FD_ISSET(client_array[i].sock, &readfds)) { - acm_log(2, "receiving from client %d\n", i); -+ #ifdef HAVE_NETLINK - if (i == NL_CLIENT_INDEX) - acm_nl_receive(&client_array[i]); - else -+ #endif - acm_svr_receive(&client_array[i]); - } - } -@@ -3119,8 +3141,10 @@ int CDECL_FUNC main(int argc, char **argv) - acm_server(); - - acm_log(0, "shutting down\n"); -+#ifdef HAVE_NETLINK - if (client_array[NL_CLIENT_INDEX].sock != INVALID_SOCKET) - close(client_array[NL_CLIENT_INDEX].sock); -+#endif - acm_close_providers(); - acm_stop_sa_handler(); - umad_done();