diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 0841ac78c67d209972c1bb0ea7738ad0ef5882fb..d1f8f7847f7ceb1565e8f1e3255f19cf65c04eba 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -1589,9 +1589,9 @@ static int neightbl_fill_info(struct neigh_table *tbl, struct sk_buff *skb,
 	struct ndtmsg *ndtmsg;
 
 	nlh = NLMSG_PUT_ANSWER(skb, cb, RTM_NEWNEIGHTBL, sizeof(struct ndtmsg));
-	ndtmsg = NLMSG_DATA(nlh);
+	nlh->nlmsg_flags |= NLM_F_MULTI;
 
-	NLMSG_SET_MULTIPART(nlh);
+	ndtmsg = NLMSG_DATA(nlh);
 
 	read_lock_bh(&tbl->lock);
 	ndtmsg->ndtm_family = tbl->family;
@@ -1674,9 +1674,9 @@ static int neightbl_fill_param_info(struct neigh_table *tbl,
 	struct nlmsghdr *nlh;
 
 	nlh = NLMSG_PUT_ANSWER(skb, cb, RTM_NEWNEIGHTBL, sizeof(struct ndtmsg));
-	ndtmsg = NLMSG_DATA(nlh);
+	nlh->nlmsg_flags |= NLM_F_MULTI;
 
-	NLMSG_SET_MULTIPART(nlh);
+	ndtmsg = NLMSG_DATA(nlh);
 
 	read_lock_bh(&tbl->lock);
 	ndtmsg->ndtm_family = tbl->family;