aboutsummaryrefslogtreecommitdiffstats
path: root/tools/hv/hv_kvp_daemon.c
diff options
context:
space:
mode:
authorOlaf Hering <olaf@aepfle.de>2013-08-06 14:55:38 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-26 15:03:31 -0400
commit269ce62bbc00c4e80bf3ca2aa21823f20625bcf6 (patch)
tree357ff8f61092daf5c861ce13f7d1ec0a647a95d9 /tools/hv/hv_kvp_daemon.c
parent58125210ab3b202917c04fca014317944d464ea0 (diff)
Tools: hv: use single send+recv buffer
send_buffer is used only once during registration. To reduce runtime memory usage reuse the recv_buffer for registration. Also use NLMSG_LENGTH instead of NLMSG_HDRLEN to take alignment into account. Signed-off-by: Olaf Hering <olaf@aepfle.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/hv/hv_kvp_daemon.c')
-rw-r--r--tools/hv/hv_kvp_daemon.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c
index 21bd7d4574fc..b8d6d541d854 100644
--- a/tools/hv/hv_kvp_daemon.c
+++ b/tools/hv/hv_kvp_daemon.c
@@ -1434,7 +1434,6 @@ int main(void)
1434 int pool; 1434 int pool;
1435 char *if_name; 1435 char *if_name;
1436 struct hv_kvp_ipaddr_value *kvp_ip_val; 1436 struct hv_kvp_ipaddr_value *kvp_ip_val;
1437 char *kvp_send_buffer;
1438 char *kvp_recv_buffer; 1437 char *kvp_recv_buffer;
1439 size_t kvp_recv_buffer_len; 1438 size_t kvp_recv_buffer_len;
1440 1439
@@ -1443,11 +1442,10 @@ int main(void)
1443 openlog("KVP", 0, LOG_USER); 1442 openlog("KVP", 0, LOG_USER);
1444 syslog(LOG_INFO, "KVP starting; pid is:%d", getpid()); 1443 syslog(LOG_INFO, "KVP starting; pid is:%d", getpid());
1445 1444
1446 kvp_recv_buffer_len = NLMSG_HDRLEN + sizeof(struct cn_msg) + sizeof(struct hv_kvp_msg); 1445 kvp_recv_buffer_len = NLMSG_LENGTH(0) + sizeof(struct cn_msg) + sizeof(struct hv_kvp_msg);
1447 kvp_send_buffer = calloc(1, kvp_recv_buffer_len);
1448 kvp_recv_buffer = calloc(1, kvp_recv_buffer_len); 1446 kvp_recv_buffer = calloc(1, kvp_recv_buffer_len);
1449 if (!(kvp_send_buffer && kvp_recv_buffer)) { 1447 if (!kvp_recv_buffer) {
1450 syslog(LOG_ERR, "Failed to allocate netlink buffers"); 1448 syslog(LOG_ERR, "Failed to allocate netlink buffer");
1451 exit(EXIT_FAILURE); 1449 exit(EXIT_FAILURE);
1452 } 1450 }
1453 /* 1451 /*
@@ -1494,7 +1492,7 @@ int main(void)
1494 /* 1492 /*
1495 * Register ourselves with the kernel. 1493 * Register ourselves with the kernel.
1496 */ 1494 */
1497 message = (struct cn_msg *)kvp_send_buffer; 1495 message = (struct cn_msg *)kvp_recv_buffer;
1498 message->id.idx = CN_KVP_IDX; 1496 message->id.idx = CN_KVP_IDX;
1499 message->id.val = CN_KVP_VAL; 1497 message->id.val = CN_KVP_VAL;
1500 1498