diff --git a/misc/arpd.c b/misc/arpd.c
index e77ef53928a2..b4935c23eebb 100644
--- a/misc/arpd.c
+++ b/misc/arpd.c
@@ -437,10 +437,10 @@ static void get_kern_msg(void)
 	struct iovec iov;
 	char   buf[8192];
 	struct msghdr msg = {
-		(void *)&nladdr, sizeof(nladdr),
-		&iov,	1,
-		NULL,	0,
-		0
+		.msg_name = &nladdr, .msg_namelen = sizeof(nladdr),
+		.msg_iov = &iov, .msg_iovlen = 1,
+		.msg_control = (void *)NULL, .msg_controllen = 0,
+		.msg_flags = 0
 	};
 
 	iov.iov_base = buf;
