Refactor RDMA netlink infrastructure
v3 cover Refactor RDMA netlink infrastructure
The following patch set is a preparation to addition of netlink handlers to support RDMA tool. It simplifies the code, removes useless client infrastructure, concentrates netlink validity checks and allows future patches to remove a lot of dead code from iwcm* code base (all operations related to nl_clients).
It is based on already sent to the mailing list patch [1] "Revert "IB/core: Add flow control to the portmapper netlink calls""
[1] https://patchwork.kernel.org/patch/9752865/
Changelogv2->v3:
* Rebase on top -rc4.v1->v2:
* Added Chien's ROB tags
Patch #1:
* Annotate max_num_ops with "static const" to calculate the value once only.
v0->v1:
* Moved to separate topic from rdmatool.
Patch #1:
* Add check to catch already initialized callback table to avoid double registration of the same protocol.
* Rewrite the validity check to use array instead of switch().
Available in the "topic/betlink-refactor-v3" topic branch of this git repo:git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git
Or for browsing:
https://git.kernel.org/cgit/linux/kernel/git/leon/linux-rdma.git/log/?h=topic/netlink-refactor-v3
Leon Romanovsky (5):
RDMA/netlink: Remove netlink clients infrastructure RDMA/netlink: Remove redundant owner option for netlink callbacks RDMA/netlink: Avoid double pass for RDMA netlink messages RDMA/iwcm: Remove useless check of nelink client validity RDMA/iwcm: Remove extra EXPORT_SYMBOLS
drivers/infiniband/core/cma.c | 9 +- drivers/infiniband/core/core_priv.h | 4 +- drivers/infiniband/core/device.c | 41 ++---- drivers/infiniband/core/iwcm.c | 10 +- drivers/infiniband/core/iwpm_msg.c | 12 -- drivers/infiniband/core/iwpm_util.c | 11 -- drivers/infiniband/core/netlink.c | 249 +++++++++++++++++++----------------- include/rdma/rdma_netlink.h | 14 +- 8 files changed, 155 insertions(+), 195 deletions(-)
--
2.13.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 20170627050028.17902-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
PATCH v3 1/5 RDMA/netlink: Remove netlink clients infrastructure
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
RDMA netlink has complicated infrastructure to add and remove netlink clients to NETLINK_RDMA family. This complicates the code and not in use because not many clients are available (3 clients) and most of them (2 clients) are statically compiled together with netlink.c.
The following patch refactors RDMA netlink and opens door for the future patches which will be able to get rid of a lot of dead iwcm* code.
--- drivers/infiniband/core/cma.c | 6 +- drivers/infiniband/core/core_priv.h | 4 +- drivers/infiniband/core/device.c | 41 ++------ drivers/infiniband/core/iwcm.c | 10 +- drivers/infiniband/core/netlink.c | 185 +++++++++++++++++------------------- include/rdma/rdma_netlink.h | 13 +-- 6 files changed, 110 insertions(+), 149 deletions(-)
drivers/infiniband/core/cma.c +2 -4
@@ -4530,9 +4530,7 @@ static int __init cma_init(void)if (ret) goto err; -if (ibnl_add_client (RDMA_NL_RDMA_CM ,ARRAY_SIZE (cma_cb_table), - cma_cb_table)) -pr_warn ("RDMA CMA: failed to add netlink callback\n" ); +rdma_nl_register (RDMA_NL_RDMA_CM , cma_cb_table);cma_configfs_init ();return 0 ;
@@ -4549,7 +4547,7 @@ static int __init cma_init(void) static void __exit cma_cleanup(void) {cma_configfs_exit (); -ibnl_remove_client (RDMA_NL_RDMA_CM ); +rdma_nl_unregister (RDMA_NL_RDMA_CM );ib_unregister_client (&cma_client);unregister_netdevice_notifier (&cma_nb);rdma_addr_unregister_client (&addr_client);
drivers/infiniband/core/core_priv.h +2 -2
@@ -169,8 +169,8 @@ void ib_mad_cleanup(void);int ib_sa_init (void );void ib_sa_cleanup (void ); -int ibnl_init (void ); -void ibnl_cleanup (void ); +int rdma_nl_init (void ); +void rdma_nl_exit (void );/** * Check if there are any listeners to the netlink group
drivers/infiniband/core/device.c +10 -31
83 lines not on this page · raw message
drivers/infiniband/core/iwcm.c +3 -7
@@ -1175,12 +1175,8 @@ static int __init iw_cm_init(void) ret =iwpm_init (RDMA_NL_IWCM );if (ret)pr_err ("iw_cm: couldn't init iwpm\n" ); - - ret =ibnl_add_client (RDMA_NL_IWCM ,ARRAY_SIZE (iwcm_nl_cb_table), - iwcm_nl_cb_table); -if (ret) -pr_err ("iw_cm: couldn't register netlink callbacks\n" ); - +else +rdma_nl_register (RDMA_NL_IWCM , iwcm_nl_cb_table); iwcm_wq =alloc_ordered_workqueue ("iw_cm_wq" ,WQ_MEM_RECLAIM );if (!iwcm_wq)return -ENOMEM ;
@@ -1200,7 +1196,7 @@ static void __exit iw_cm_cleanup(void) {unregister_net_sysctl_table (iwcm_ctl_table_hdr);destroy_workqueue (iwcm_wq); -ibnl_remove_client (RDMA_NL_IWCM ); +rdma_nl_unregister (RDMA_NL_IWCM );iwpm_exit (RDMA_NL_IWCM ); }
drivers/infiniband/core/netlink.c +89 -96
249 lines not on this page · raw message
include/rdma/rdma_netlink.h +4 -9
@@ -11,23 +11,18 @@ struct ibnl_client_cbs { };/** -* Add a a client to the list of IB netlink exporters. +* Register client in RDMA netlink. * @index: Index of the added client -* @nops: Number of supported ops by the added client. * @cb_table: A table for op->callback -* -* Returns 0 on success or a negative error code. */ -int ibnl_add_client (int index,int nops, -const struct ibnl_client_cbs cb_table[]); +void rdma_nl_register (unsigned int index, +const struct ibnl_client_cbs cb_table[]);/** * Remove a client from IB netlink. * @index: Index of the removed IB client. -* -* Returns 0 on success or a negative error code. */ -int ibnl_remove_client (int index); +void rdma_nl_unregister (unsigned int index);/** * Put a new message in a supplied skb.
--
2.13.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 20170627050028.17902-2-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Re: [PATCH rdma-next V3 1/5] RDMA/netlink: Remove netlink clients infrastructure
Quoted 6 lines · Leon Romanovsky
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
RDMA netlink has complicated infrastructure to add and remove netlink clients to
NETLINK_RDMAfamily. This complicates the code and not in use because not many clients are available (3 clients) and most of them (2 clients) are statically compiled together withnetlink.c.
So here you say there are three clients.
Quoted 7 lines
drivers/infiniband/core/netlink.c +5
-2-struct ibnl_client *cur; -struct ibnl_client *nl_client; +static const unsigned int max_num_ops[RDMA_NL_NUM_CLIENTS -1 ] = { +RDMA_NL_RDMA_CM_NUM_OPS , +RDMA_NL_IWPM_NUM_OPS , +0 , +RDMA_NL_LS_NUM_OPS ,
drivers/infiniband/core/netlink.c int ibnl_chk_listeners(unsigned int group) · line 70
Quoted 10 lines
drivers/infiniband/core/netlink.c +6
-3+ 0 }; - nl_client =kmalloc (sizeof *nl_client,GFP_KERNEL ); -if (!nl_client) -return -ENOMEM ; +/* +* This BUILD_BUG_ON is intended to catch addition of new +* RDMA netlink protocol without updating the array above. +*/ +BUILD_BUG_ON (RDMA_NL_NUM_CLIENTS !=6 );
Yet we are checking for 6? Can you elaborate here.
-Denny
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 7285b9b9-360f-5157-1148-1554db2f4a2c-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
Re: [PATCH rdma-next V3 1/5] RDMA/netlink: Remove netlink clients infrastructure
Quoted 19 lines · Dennis Dalessandro
Quoted 6 lines · Leon Romanovsky
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
RDMA netlink has complicated infrastructure to add and remove netlink clients to
NETLINK_RDMAfamily. This complicates the code and not in use because not many clients are available (3 clients) and most of them (2 clients) are statically compiled together withnetlink.c.So here you say there are three clients.
Quoted 9 lines
drivers/infiniband/core/netlink.c +6
-2-struct ibnl_client *cur; -struct ibnl_client *nl_client; +static const unsigned int max_num_ops[RDMA_NL_NUM_CLIENTS -1 ] = { +RDMA_NL_RDMA_CM_NUM_OPS , +RDMA_NL_IWPM_NUM_OPS , +0 , +RDMA_NL_LS_NUM_OPS , +0 };
Quoted 10 lines
drivers/infiniband/core/netlink.c int ibnl_chk_listeners(unsigned int group) · line 70
Quoted 8 lines
drivers/infiniband/core/netlink.c +5
-3- nl_client =kmalloc (sizeof *nl_client,GFP_KERNEL ); -if (!nl_client) -return -ENOMEM ; +/* +* This BUILD_BUG_ON is intended to catch addition of new +* RDMA netlink protocol without updating the array above. +*/ +BUILD_BUG_ON (RDMA_NL_NUM_CLIENTS !=6 );Yet we are checking for 6? Can you elaborate here.
This check is needed to ensure that the array is properly initialized.
The clients were exposed in include/uapi/rdma/rdma_netlink.h, in the following enum:
6 enum {
7 RDMA_NL_RDMA_CM = 1, 8 RDMA_NL_IWCM, 9 RDMA_NL_RSVD, 10 RDMA_NL_LS, /* RDMA Local Services */ 11 RDMA_NL_I40IW, 12 RDMA_NL_NUM_CLIENTS
13 };
First of all it starts from 1, second we have RDMA_NL_RSVD and RDMA_NL_NUM_CLIENTS which exposed, but are not real clients, because nothing is handled them
It leads for RDMA_NL_NUM_CLIENTS == 6 and this is why I'm checking for 6.
Quoted 6 lines
-Denny
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 20170717145422.GH3259-U/[email protected]
Re: [PATCH rdma-next V3 1/5] RDMA/netlink: Remove netlink clients infrastructure
Quoted 43 lines · Leon Romanovsky
Quoted 19 lines · Dennis Dalessandro
Quoted 6 lines · Leon Romanovsky
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
RDMA netlink has complicated infrastructure to add and remove netlink clients to
NETLINK_RDMAfamily. This complicates the code and not in use because not many clients are available (3 clients) and most of them (2 clients) are statically compiled together withnetlink.c.So here you say there are three clients.
Quoted 9 lines
drivers/infiniband/core/netlink.c +6
-2-struct ibnl_client *cur; -struct ibnl_client *nl_client; +static const unsigned int max_num_ops[RDMA_NL_NUM_CLIENTS -1 ] = { +RDMA_NL_RDMA_CM_NUM_OPS , +RDMA_NL_IWPM_NUM_OPS , +0 , +RDMA_NL_LS_NUM_OPS , +0 };Quoted 10 lines
drivers/infiniband/core/netlink.c int ibnl_chk_listeners(unsigned int group) · line 70
Quoted 8 lines
drivers/infiniband/core/netlink.c +5
-3- nl_client =kmalloc (sizeof *nl_client,GFP_KERNEL ); -if (!nl_client) -return -ENOMEM ; +/* +* This BUILD_BUG_ON is intended to catch addition of new +* RDMA netlink protocol without updating the array above. +*/ +BUILD_BUG_ON (RDMA_NL_NUM_CLIENTS !=6 );Yet we are checking for 6? Can you elaborate here.
This check is needed to ensure that the array is properly initialized.
The clients were exposed in
include/uapi/rdma/rdma_netlink.h, in the following enum:6 enum {
7 RDMA_NL_RDMA_CM = 1, 8 RDMA_NL_IWCM, 9 RDMA_NL_RSVD, 10 RDMA_NL_LS, /* RDMA Local Services */ 11 RDMA_NL_I40IW, 12 RDMA_NL_NUM_CLIENTS
Quoted 8 lines
13 };
First of all it starts from 1, second we have
RDMA_NL_RSVDandRDMA_NL_NUM_CLIENTSwhich exposed, but are not real clients, because nothing is handled themIt leads for
RDMA_NL_NUM_CLIENTS== 6 and this is why I'm checking for 6.
Makes sense now.
-Denny
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v3 2/5 RDMA/netlink: Remove redundant owner option for netlink callbacks
In reply to a message not in the archiveFrom: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
Owner field is not needed to be set because netlink is part of ib_core which will be unloaded last after all other modules are unloaded.
--- drivers/infiniband/core/cma.c | 3 +-- drivers/infiniband/core/netlink.c | 2 -- include/rdma/rdma_netlink.h | 1 - 3 files changed, 1 insertion(+), 5 deletions(-)
drivers/infiniband/core/cma.c +1 -2
@@ -4477,8 +4477,7 @@ static int cma_get_id_stats(struct sk_buff *skb, struct netlink_callback *cb) }static const struct ibnl_client_cbs cma_cb_table[] = { - [RDMA_NL_RDMA_CM_ID_STATS ] = { .dump = cma_get_id_stats, - .module =THIS_MODULE }, + [RDMA_NL_RDMA_CM_ID_STATS ] = { .dump = cma_get_id_stats}, };static int cma_init_net (struct net *net)
drivers/infiniband/core/netlink.c +0 -2
@@ -180,12 +180,10 @@ static int ibnl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, cb.skb = skb; cb.nlh = nlh; cb.dump = rdma_nl_types[index].cb_table[op].dump; - cb.module = rdma_nl_types[index].cb_table[op].module;return cb.dump (skb, &cb); } c.dump = rdma_nl_types[index].cb_table[op].dump; - c.module = rdma_nl_types[index].cb_table[op].module;return netlink_dump_start (nls, skb, nlh, &c); }
include/rdma/rdma_netlink.h +0 -1
@@ -7,7 +7,6 @@struct ibnl_client_cbs {int (*dump)(struct sk_buff *skb,struct netlink_callback *nlcb); -struct module *module; };/**
--
2.13.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 20170627050028.17902-3-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Re: [PATCH rdma-next V3 2/5] RDMA/netlink: Remove redundant owner option for netlink callbacks
Quoted 4 lines · Leon Romanovsky
From: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
Owner field is not needed to be set because netlink is part of
ib_corewhich will be unloaded last after all other modules are unloaded.
Perhaps move the similar parts from first patch here or just squash this with the first?
-Denny
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v3 3/5 RDMA/netlink: Avoid double pass for RDMA netlink messages
In reply to a message not in the archiveFrom: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
The standard netlink_rcv_skb function skips messages without NLM_F_REQUEST flag in it, while SA netlink client issues them.
In commit bc10ed7d3d19 ("IB/core: Add rdma netlink helper functions") the local function was introduced to allow such messages.
This led to double pass for every incoming message.
In this patch, we unify that local implementation and netlink_rcv_skb functions, so there will be no need for double pass anymore.
As a outcome, this combined function gained more strict check for NLM_F_REQUEST flag and it is now allowed for SA pathquery client only.
--- drivers/infiniband/core/netlink.c | 62 +++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 18 deletions(-)
drivers/infiniband/core/netlink.c +44 -18
@@ -159,8 +159,8 @@ int ibnl_put_attr(struct sk_buff *skb, struct nlmsghdr *nlh, }EXPORT_SYMBOL (ibnl_put_attr); -static int ibnl_rcv_msg (struct sk_buff *skb,struct nlmsghdr *nlh, -struct netlink_ext_ack *extack) +static int rdma_nl_rcv_msg (struct sk_buff *skb,struct nlmsghdr *nlh, +struct netlink_ext_ack *extack) {int type = nlh->nlmsg_type;unsigned int index =RDMA_NL_GET_CLIENT (type);
@@ -187,40 +187,66 @@ static int ibnl_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh,return netlink_dump_start (nls, skb, nlh, &c); } -static void ibnl_rcv_reply_skb (struct sk_buff *skb) +/* +* This function is similar to netlink_rcv_skb with one exception: +* It calls to the callback for the netlink messages without NLM_F_REQUEST +* flag. These messages are intended for RDMA_NL_LS consumer, so it is allowed +* for that consumer only. +*/ +static int rdma_nl_rcv_skb (struct sk_buff *skb,int (*cb)(struct sk_buff *, +struct nlmsghdr *, +struct netlink_ext_ack *)) { +struct netlink_ext_ack extack = {};struct nlmsghdr *nlh; -int msglen; +int err; -/* -* Process responses until there is no more message or the first -* request. Generally speaking, it is not recommended to mix responses -* with requests. -*/ while (skb->len >=nlmsg_total_size (0 )) { +int msglen; + nlh =nlmsg_hdr (skb); + err =0 ;if (nlh->nlmsg_len <NLMSG_HDRLEN || skb->len < nlh->nlmsg_len) -return ; +return 0 ; -/* Handle response only */ -if (nlh->nlmsg_flags &NLM_F_REQUEST ) -return ; +/* +* Generally speaking, the only requests are handled +* by the kernel, but RDMA_NL_LS is different, because it +* runs backward netlink scheme. Kernel initiates messages +* and waits for reply with data to keep pathrecord cache +* in sync. +*/ +if (!(nlh->nlmsg_flags &NLM_F_REQUEST ) && + (RDMA_NL_GET_CLIENT (nlh->nlmsg_type) !=RDMA_NL_LS )) + goto ack; + +/* Skip control messages */ +if (nlh->nlmsg_type <NLMSG_MIN_TYPE ) + goto ack; + + err =cb (skb, nlh, &extack); +if (err == -EINTR ) + goto skip; -ibnl_rcv_msg (skb, nlh,NULL ); +ack: +if (nlh->nlmsg_flags &NLM_F_ACK || err) +netlink_ack (skb, nlh, err, &extack); +skip: msglen =NLMSG_ALIGN (nlh->nlmsg_len);if (msglen > skb->len) msglen = skb->len;skb_pull (skb, msglen); } + +return 0 ; } -static void ibnl_rcv (struct sk_buff *skb) +static void rdma_nl_rcv (struct sk_buff *skb) {mutex_lock (&rdma_nl_mutex); -ibnl_rcv_reply_skb (skb); -netlink_rcv_skb (skb, &ibnl_rcv_msg); +rdma_nl_rcv_skb (skb, &rdma_nl_rcv_msg);mutex_unlock (&rdma_nl_mutex); }
@@ -241,7 +267,7 @@ EXPORT_SYMBOL(ibnl_multicast);int __init rdma_nl_init (void ) {struct netlink_kernel_cfg cfg = { - .input = ibnl_rcv, + .input = rdma_nl_rcv, }; nls =netlink_kernel_create (&init_net,NETLINK_RDMA , &cfg);
--
2.13.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v3 4/5 RDMA/iwcm: Remove useless check of nelink client validity
In reply to a message not in the archiveFrom: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
RDMA netlink implementation guarantees that supplied client number is in allowed range.
--- drivers/infiniband/core/iwpm_util.c | 6 ------ 1 file changed, 6 deletions(-)
drivers/infiniband/core/iwpm_util.c +0 -6
@@ -54,8 +54,6 @@ static struct iwpm_admin_data iwpm_admin;int iwpm_init (u8 nl_client) {int ret =0 ; -if (iwpm_valid_client (nl_client)) -return -EINVAL ;mutex_lock (&iwpm_admin_lock);if (atomic_read (&iwpm_admin.refcount) ==0 ) { iwpm_hash_bucket = kzalloc(IWPM_MAPINFO_HASH_SIZE *
@@ -383,15 +381,11 @@ int iwpm_get_nlmsg_seq(void)int iwpm_valid_client (u8 nl_client) { -if (nl_client >=RDMA_NL_NUM_CLIENTS ) -return 0 ;return iwpm_admin.client_list[nl_client]; }void iwpm_set_valid (u8 nl_client,int valid) { -if (nl_client >=RDMA_NL_NUM_CLIENTS ) -return ; iwpm_admin.client_list[nl_client] = valid; }
--
2.13.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v3 5/5 RDMA/iwcm: Remove extra EXPORT_SYMBOLS
In reply to a message not in the archiveFrom: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/[email protected]>
The iwcm exports functions which are not used outside of ib_core. This patch simply removes these EXPORT_SYMBOLS.
--- drivers/infiniband/core/iwpm_msg.c | 12 ------------ drivers/infiniband/core/iwpm_util.c | 5 ----- 2 files changed, 17 deletions(-)
drivers/infiniband/core/iwpm_msg.c +0 -12
@@ -42,7 +42,6 @@ int iwpm_valid_pid(void) {return iwpm_user_pid >0 ; } -EXPORT_SYMBOL (iwpm_valid_pid);/* * iwpm_register_pid - Send a netlink query to user space
@@ -122,7 +121,6 @@ int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client)iwpm_free_nlmsg_request (&nlmsg_request->kref);return ret; } -EXPORT_SYMBOL (iwpm_register_pid);/* * iwpm_add_mapping - Send a netlink add mapping message
@@ -191,7 +189,6 @@ int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client)iwpm_free_nlmsg_request (&nlmsg_request->kref);return ret; } -EXPORT_SYMBOL (iwpm_add_mapping);/* * iwpm_add_and_query_mapping - Send a netlink add and query
@@ -267,7 +264,6 @@ int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client)iwpm_free_nlmsg_request (&nlmsg_request->kref);return ret; } -EXPORT_SYMBOL (iwpm_add_and_query_mapping);/* * iwpm_remove_mapping - Send a netlink remove mapping message
@@ -328,7 +324,6 @@ int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client)dev_kfree_skb_any (skb);return ret; } -EXPORT_SYMBOL (iwpm_remove_mapping);/* netlink attribute policy for the received response to register pid request */ static const struct nla_policy resp_reg_policy[IWPM_NLA_RREG_PID_MAX ] = {
@@ -397,7 +392,6 @@ int iwpm_register_pid_cb(struct sk_buff *skb, struct netlink_callback *cb)up (&nlmsg_request->sem);return 0 ; } -EXPORT_SYMBOL (iwpm_register_pid_cb);/* netlink attribute policy for the received response to add mapping request */ static const struct nla_policy resp_add_policy[IWPM_NLA_RMANAGE_MAPPING_MAX ] = {
@@ -466,7 +460,6 @@ int iwpm_add_mapping_cb(struct sk_buff *skb, struct netlink_callback *cb)up (&nlmsg_request->sem);return 0 ; } -EXPORT_SYMBOL (iwpm_add_mapping_cb);/* netlink attribute policy for the response to add and query mapping request * and response with remote address info */
@@ -558,7 +551,6 @@ int iwpm_add_and_query_mapping_cb(struct sk_buff *skb,up (&nlmsg_request->sem);return 0 ; } -EXPORT_SYMBOL (iwpm_add_and_query_mapping_cb);/* * iwpm_remote_info_cb - Process a port mapper message, containing
@@ -627,7 +619,6 @@ int iwpm_remote_info_cb(struct sk_buff *skb, struct netlink_callback *cb) "remote_info: Mapped remote sockaddr:");return ret; } -EXPORT_SYMBOL (iwpm_remote_info_cb);/* netlink attribute policy for the received request for mapping info */ static const struct nla_policy resp_mapinfo_policy[IWPM_NLA_MAPINFO_REQ_MAX ] = {
@@ -677,7 +668,6 @@ int iwpm_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb) ret =iwpm_send_mapinfo (nl_client, iwpm_user_pid);return ret; } -EXPORT_SYMBOL (iwpm_mapping_info_cb);/* netlink attribute policy for the received mapping info ack */ static const struct nla_policy ack_mapinfo_policy[IWPM_NLA_MAPINFO_NUM_MAX ] = {
@@ -707,7 +697,6 @@ int iwpm_ack_mapping_info_cb(struct sk_buff *skb, struct netlink_callback *cb)atomic_set (&echo_nlmsg_seq, cb->nlh->nlmsg_seq);return 0 ; } -EXPORT_SYMBOL (iwpm_ack_mapping_info_cb);/* netlink attribute policy for the received port mapper error message */ static const struct nla_policy map_error_policy[IWPM_NLA_ERR_MAX ] = {
@@ -751,4 +740,3 @@ int iwpm_mapping_error_cb(struct sk_buff *skb, struct netlink_callback *cb)up (&nlmsg_request->sem);return 0 ; } -EXPORT_SYMBOL (iwpm_mapping_error_cb);
drivers/infiniband/core/iwpm_util.c +0 -5
@@ -81,7 +81,6 @@ int iwpm_init(u8 nl_client) }return ret; } -EXPORT_SYMBOL (iwpm_init);static void free_hash_bucket (void );static void free_reminfo_bucket (void );
@@ -107,7 +106,6 @@ int iwpm_exit(u8 nl_client)iwpm_set_registration (nl_client,IWPM_REG_UNDEF );return 0 ; } -EXPORT_SYMBOL (iwpm_exit);static struct hlist_head *get_mapinfo_hash_bucket (struct sockaddr_storage *,struct sockaddr_storage *);
@@ -146,7 +144,6 @@ int iwpm_create_mapinfo(struct sockaddr_storage *local_sockaddr,spin_unlock_irqrestore (&iwpm_mapinfo_lock, flags);return ret; } -EXPORT_SYMBOL (iwpm_create_mapinfo);int iwpm_remove_mapinfo (struct sockaddr_storage *local_sockaddr,struct sockaddr_storage *mapped_local_addr)
@@ -182,7 +179,6 @@ int iwpm_remove_mapinfo(struct sockaddr_storage *local_sockaddr,spin_unlock_irqrestore (&iwpm_mapinfo_lock, flags);return ret; } -EXPORT_SYMBOL (iwpm_remove_mapinfo);static void free_hash_bucket (void ) {
@@ -295,7 +291,6 @@ int iwpm_get_remote_info(struct sockaddr_storage *mapped_loc_addr,spin_unlock_irqrestore (&iwpm_reminfo_lock, flags);return ret; } -EXPORT_SYMBOL (iwpm_get_remote_info);struct iwpm_nlmsg_request *iwpm_get_nlmsg_request (__u32 nlmsg_seq,u8 nl_client,gfp_t gfp)
--
2.13.1
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html