|
@@ -100,6 +100,8 @@ int iwpm_register_pid(struct iwpm_dev_data *pm_msg, u8 nl_client)
|
|
|
if (ret)
|
|
|
goto pid_query_error;
|
|
|
|
|
|
+ nlmsg_end(skb, nlh);
|
|
|
+
|
|
|
pr_debug("%s: Multicasting a nlmsg (dev = %s ifname = %s iwpm = %s)\n",
|
|
|
__func__, pm_msg->dev_name, pm_msg->if_name, iwpm_ulib_name);
|
|
|
|
|
@@ -170,6 +172,8 @@ int iwpm_add_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client)
|
|
|
&pm_msg->loc_addr, IWPM_NLA_MANAGE_ADDR);
|
|
|
if (ret)
|
|
|
goto add_mapping_error;
|
|
|
+
|
|
|
+ nlmsg_end(skb, nlh);
|
|
|
nlmsg_request->req_buffer = pm_msg;
|
|
|
|
|
|
ret = rdma_nl_unicast_wait(skb, iwpm_user_pid);
|
|
@@ -246,6 +250,8 @@ int iwpm_add_and_query_mapping(struct iwpm_sa_data *pm_msg, u8 nl_client)
|
|
|
&pm_msg->rem_addr, IWPM_NLA_QUERY_REMOTE_ADDR);
|
|
|
if (ret)
|
|
|
goto query_mapping_error;
|
|
|
+
|
|
|
+ nlmsg_end(skb, nlh);
|
|
|
nlmsg_request->req_buffer = pm_msg;
|
|
|
|
|
|
ret = rdma_nl_unicast_wait(skb, iwpm_user_pid);
|
|
@@ -308,6 +314,8 @@ int iwpm_remove_mapping(struct sockaddr_storage *local_addr, u8 nl_client)
|
|
|
if (ret)
|
|
|
goto remove_mapping_error;
|
|
|
|
|
|
+ nlmsg_end(skb, nlh);
|
|
|
+
|
|
|
ret = rdma_nl_unicast_wait(skb, iwpm_user_pid);
|
|
|
if (ret) {
|
|
|
skb = NULL; /* skb is freed in the netlink send-op handling */
|